Ресурсы локализации .NET - как их синхронизировать? - PullRequest
16 голосов
/ 08 июля 2011

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

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

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

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

Ответы [ 8 ]

6 голосов
/ 08 июля 2011

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

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

4 голосов
/ 19 июля 2011

Я только что нашел http://zetaresourceeditor.codeplex.com/, также похоже на идею, подобную другим

2 голосов
/ 08 июля 2011

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

1 голос
/ 06 августа 2015

немного старая эта дискуссия, но все же интересная.взгляните на ResXManager

1 голос
/ 08 июля 2011

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

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

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

1 голос
/ 08 июля 2011

Я предлагаю вам создать файлы ресурсов для конкретной культуры программно, используя файл 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. Так что это одноразовое усилие. Таким образом, вы можете сохранить его синхронизированным и легко обслуживаемым.

0 голосов
/ 15 июля 2011

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

0 голосов
/ 08 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...