Подходят ли файлы resx для интернационализации? - PullRequest
18 голосов
/ 30 апреля 2009

Мне была дана задача интернационализации большого клиент-серверного приложения. Дело в том, что я делаю приложение «Готов к миру», а затем скомпилированное приложение и ресурсы передаются коллегам в другой стране для перевода и выпуска их клиентам. Будет несколько стран и, следовательно, несколько отдельных переводов.

Ключевым моментом здесь является то, что я хочу простой двухэтапный процесс выпуска:

Шаг 1: Я компилирую и выпускаю приложение "World Ready" для моих коллег из разных стран

Шаг 2: Они выполняют локализацию ресурсов и затем предоставляют своим клиентам

Я не хочу добавить дополнительные шаги Сделать приложение готовым к миру -> Отправить файлы на перевод -> Подождите недели чтобы переводы возвращались -> Компилировать в приложение -> Выпуск приложения .

Я изучал глобализацию .NET и использование файла resx. Из того, что я видел, файл resx компилируется в приложение и поэтому не может быть изменен после компиляции. Даже спутниковые сборки не кажутся редактируемыми. И даже если я ошибаюсь в этом вопросе, как изменения в сборках спутника будут отражены обратно в файлы resx в моем проекте?

Так что теперь к вопросу. Учитывая, что я просто хочу сначала скомпилировать приложение и впоследствии разрешить переводы, являются ли файлы resx правильным выбором или я должен отказаться от них и написать сделанное на заказ решение на основе базы данных, которое можно легко редактировать после того, как приложение был скомпилирован?

Надеюсь, что все имеет смысл. С нетерпением ждем ваших мыслей.

Ответы [ 3 ]

16 голосов
/ 30 апреля 2009

Да, файлы resx - лучшее решение.

Для перевода ресурсов вы должны обратиться к инструменту локализации, например Passolo . Это либо

  • принимает исходный resx в качестве входного и генерирует переведенный файл resx, который вам необходимо зарегистрировать в вашей кодовой базе
  • принимает скомпилированные сборки в качестве входных данных и создает спутниковые сборки.

Мы переводим сборки, поскольку это позволяет также локализовать макет графического интерфейса. Чтобы позволить внешнему инструменту открывать графический редактор, ему нужен код, и он находится в сборке.

Если вы сосредоточены только на тестовом переводе, перевод resx, вероятно, будет проще для обработки.

Такой внешний инструмент обеспечивает следующие важные функции:

  • собрать всю строку вместе, вам не нужно обрабатывать сотни файлов resx
  • управление переводом текста на многие языки, в основном с помощью графического дизайнера.
  • распознает, если исходный текст изменился или был добавлен, так что теперь вы можете определить, какие тексты необходимо перевести.
  • перевод дублированных текстов только один раз.
  • обычно хороший интерфейс для редактирования переводов.
  • экспорт / импорт в csv и аналогичные форматы для обработки другими инструментами или даже другими компаниями.
2 голосов
/ 30 апреля 2009

Да, вся структура глобализации в .NET основана на файлах RESX и создаваемых ими спутниковых сборках. Как только вы скомпилировали основное приложение, файлы RESX могут быть скомпилированы в их спутниковые сборки независимо.

Я знаю, что есть инструменты, которые помогают в процессе перевода, но я не знаком с ними со стороны.

0 голосов
/ 23 июня 2009

Проверьте поставщика ресурсов Рика Страля

...