Подтвердить что ты не робот

Локализация ресурсов .NET - как их синхронизировать?

Когда мы следуем рекомендациям по локализации, мы получаем по крайней мере пару файлов ресурсов.

Resource.resx и Resource.CI.resx, который является конкретным ресурсом CultureInfo. Допустим, мы добавили сто строк в Resource.resx и хотим перевести эти ключи в другой ресурс. мы можем скопировать их прямо сейчас и перевести их, и это может сработать в первый раз.

Однако после того, как мы переводим строки, становится сложно синхронизировать файлы - он автоматически перезаписывает строки, и я в настоящее время не понимаю, каким образом предполагается, что каждая строка локализована.

Так как строки ресурсов должны быть связаны друг с другом и с дополнительной работой, которая выполняется, чтобы убедиться, что сборки спутников построены правильно, я надеялся, что функция будет выглядеть так: "убедитесь, что каждая строка ресурса присутствует в локализованном файле ресурсов" но я боюсь, что этого не хватает..

4b9b3361

Ответ 1

RESX Synchroniser может сделать вам то, что вы ищете

При редактировании файлов .NET Resource в Visual Studio, либо вручную, либо используя "Генерировать локальные ресурсы", команды, IDE обновляет только культурно-инвариантные ресурсы: если вы иметь файл ресурсов, называемый Messages.aspx, файлы в других Языки, например, Messages.it-IT.resx, не обновляются, и вам нужно сделать это вручную. Синхронизатор RESX помогите вам сохранить файлы ресурсов синхронизированы, добавив новые ключи в локализованные файлы и удаление удаленные. Комментарии сохранены во время процесса.

Ответ 3

может быть UnitTest может вам помочь? вы знаете, какой текст должен иметь каждый элемент управления после его создания после добавления новых строк для отображения и сравнения значений. после тяжелой работы вы можете проверить свою работу по локализации.

Ответ 4

Я предлагаю вам программно создавать файлы ресурсов для культуры, используя файл Resx для этой Winform. Вы можете создать небольшое приложение, которое вы могли бы запускать время от времени.

Создайте XML-тип файла для каждой культуры, такой как fr.XML, заполните его Союзом всех строк в вашем проекте. И предоставите там сами переводы, например, файл на французском языке может выглядеть следующим образом.

< wordTranslation>
< Word>Hello< /Word>
< Translation>Bonjour< /Translation>
< /wordTranslation>

Создайте хэш-таблицу или некоторую структуру данных, которая лучше всего будет действовать в качестве словаря для каждой культуры, заполнить ее данными из определенных XMl файлов, таких как frDictionary.

Для каждого файла Resx в вашем проекте, например, wind1.resx, создайте файл, соответствующий культуре, например wind1.fr.resx. Прочитайте слова от wind1.resx, найдите перевод слова из frDictionayry. Напишите его на wind1.fr.resx.

Вы можете продолжать обновлять свои переводы в XML файле. Так что это одноразовое усилие. Таким образом, вы можете сохранить синхронизацию и легко ремонтироваться.

Ответ 5

Я знаю, что это уже получили традиционные ответы, но я также хотел бы предложить что-то совершенно оригинальное, которое мы пробовали (и преуспели) для себя для более эффективной локализации Silverlight:

Локализация проектов Silverlight после завершения

(Resx - это "прошлый век" )

Ответ 6

Вы подразумеваете синхронизацию переводов между этими файлами? Используйте http://www.getlocalization.com и загружайте оба в качестве основных файлов, когда они транслируются, переводы заполняются во все ваши файлы.

Ответ 7

Я думаю, вы можете попробовать Amanuens. Он разработан тем же автором RESX Synchronizer и, кроме того, помогает синхронизировать файлы ресурсов (даже автоматически в ваш репозиторий, если вы его установили), можно использовать, чтобы предоставить переводчикам доступ к строкам для перевода в очень мощный и простой в использовании веб-сайт редактор.

Ответ 8

немного старое это обсуждение, но все же интересно. посмотрите ResXManager