Подходят ли файлы resx для интернационализации?
-
03-07-2019 - |
Вопрос
Мне дали задачу интернационализировать большое клиент-серверное приложение.Задача состоит в том, что я делаю приложение готовым к использованию во всем мире, а затем скомпилированное приложение и ресурсы передаются коллегам в другой стране для перевода и выпуска их клиентам.Будет несколько стран и, следовательно, несколько отдельных переводов.
Ключевым моментом здесь является то, что мне нужен простой двухэтапный процесс выпуска:
Шаг 1: Я компилирую и публикую приложение «World Ready» для своих коллег в разных странах.
Шаг 2: Они выполняют локализацию ресурсов, а затем передают их своим клиентам.
я не хочу добавить дополнительные шаги Сделайте мир приложений готовым -> Отправьте файлы на перевод -> Подождите несколько недель, пока переводы вернутся. -> Скомпилировать в приложение -> Выпустить приложение.
Я изучал глобализацию .NET и использование файла resx.Судя по тому, что я видел, файл resx компилируется в приложение и поэтому не может быть изменен после компиляции.Даже спутниковые сборки не кажутся редактируемыми.И даже если я ошибаюсь в этом вопросе, как изменения во вспомогательных сборках будут отражены обратно в файлы resx в моем проекте?
Итак, теперь вопрос. Учитывая, что я просто хочу сначала скомпилировать приложение, а потом уже обрабатывать переводы, являются ли файлы resx правильным способом или мне следует отказаться от них и написать специальное решение на основе базы данных, которое можно будет легко редактировать после компиляции приложения?
Надеюсь, что все имеет смысл.Ждем ваших мыслей.
Решение
Да, файлы resx — лучшее решение.
Для перевода ресурсов вам следует воспользоваться, например, инструментом локализации. Пассоло.Это либо
- возьмите исходный resx в качестве входных данных и сгенерируйте переведенный файл resx, который вам необходимо зарегистрировать в своей кодовой базе.
- принимает скомпилированные сборки в качестве входных данных и генерирует вспомогательные сборки.
Мы переводим сборки, потому что это позволяет локализовать и верстку графического интерфейса.Чтобы позволить внешнему инструменту открыть графический редактор, ему нужен код, и он находится в сборке.
Если вы сосредоточены только на тестовом переводе, с переводом resx, вероятно, будет проще справиться.
Такой внешний инструмент обеспечивает следующие важные функции:
- соберите все строки вместе, вам не придется обрабатывать сотни файлов resx
- управлять текстом перевода на многие языки, в основном с помощью дизайнера графического интерфейса.
- распознавать, был ли исходный текст изменен или добавлен, и теперь вы знаете, какие тексты необходимо перевести.
- перевод дублированных текстов только один раз.
- обычно приятный интерфейс для редактирования переводов.
- экспорт/импорт в CSV и подобные форматы для обработки другими инструментами или даже другими компаниями.
Другие советы
Да, вся структура глобализации в .NET основана на файлах RESX и создаваемых ими вспомогательных сборках.После того как вы скомпилировали основное приложение, файлы RESX можно независимо скомпилировать во вспомогательные сборки.
Я знаю, что существуют инструменты, которые помогают в процессе перевода, но я не знаком ни с одним из них.
Проверьте Рика Страла поставщик ресурсов