Являются ли файлы resx подходящими для интернационализации?
Мне поручена интернационализация большого клиент-серверного приложения. Речь идет о том, что я создаю приложение "World Ready", а затем скомпилированное приложение и ресурсы передаются коллегам из другой страны для перевода и публикации их клиентам. Будет несколько стран и, следовательно, несколько отдельных переводов.
Ключевым моментом здесь является то, что я хочу простой двухэтапный выпуск:
Шаг 1: Я компилирую и выпускаю приложение "World Ready" для своих коллег в разных странах.
Шаг 2: Они выполняют локализацию ресурсов, а затем освобождают своих клиентов
Я не хочу добавить дополнительные шаги Сделать приложение World Ready → Отправлять файлы для перевода → Подождите недели, чтобы переводы вернулись → Скомпилировать в приложение → Отключить приложение.
Я рассматривал .NET-глобализацию и использование файла resx. Из того, что я видел, файл resx компилируется в приложение и поэтому не может быть изменен после компиляции. Даже сателлиты не кажутся правдоподобными. И даже если я ошибаюсь в этом вопросе, как изменения в сателлитных сборках отражаются обратно в файлы resx в моем проекте?
Итак, теперь вопрос. Учитывая, что я просто хочу сначала скомпилировать приложение и разрешить обработку переводов, будут ли файлы resx правильным способом, или я должен отказаться от них и написать заказное решение, основанное на базе данных, которое можно легко редактировать после того, как приложение были скомпилированы?
Надеюсь, что все имеет смысл. Посмотрите вперед к своим мыслям.
Ответы
Ответ 1
Да, файлы resx - лучшее решение.
Для перевода ресурсов вы должны посмотреть на инструмент локализации, например Passolo. Он делает либо
- возьмите исходный resx в качестве входных данных и создайте переведенный файл resx, который необходимо проверить на свою кодовую базу
- принимать собранные сборки в качестве входных данных и создавать спутниковые сборки.
Мы переводим сборки, потому что это также позволяет локализовать макет gui. Чтобы внешний инструмент мог открыть редактор GUI, ему нужен код, и он находится в сборке.
Если вы сосредоточитесь только на переводе теста, перевод resx, вероятно, проще в обращении.
Такой внешний инструмент предоставляет следующие важные функции:
- собрать всю строку вместе, вам не нужно обрабатывать сотни файлов resx.
- управлять текстом перевода на многих языках, в основном с дизайнером gui.
- узнайте, если исходный текст был изменен или добавлен, поэтому теперь вы должны перевести тексты.
- перевод дублированных текстов только один раз.
- обычно приятный ui для редактирования переводов.
- экспорт/импорт в csv и аналогичные форматы, которые будут обрабатываться другими инструментами или даже другими компаниями.
Ответ 2
Да, вся инфраструктура глобализации в .NET основана на файлах RESX и собраниях сборок, которые они создают. После того как вы скомпилировали основное приложение, файлы RESX могут быть скомпилированы в их сателлитные сборки независимо.
Я знаю, что есть инструменты там, которые помогают в процессе перевода, но я не familar с любым из них от руки.
Ответ 3
Проверить Rick Strahl поставщик ресурсов