Локализация интерфейса пользователя сложный процесс. Процесс становится ещё сложнее, если языков больше двух. О том, как добавить новый язык, можно почитать в статье https://club.directum.ru/post/162243 в разделе Локализация системы.
Сложность заключается в том, что тексты на другом языке желательно заполнять сразу в среде разработки, например, как только создал поле, диалог, вывод сообщения для пользователя. Если делать локализацию спустя какое-то время, то трудозатраты на это увеличиваются.
Но не всегда удается в проектных решениях заранее предусмотреть перевод для всех полей, диалогов, предупреждений и т.п.
При этом перевод профессионального переводчика получится лучше, чем у разработчика с помощью онлайн-сервиса.
Отсюда вытекает следующая сложность: передача строк локализации переводчику.
Разработчику нужно заходить в каждый тип документа, тип справочника, пройтись по всем полям, по заданиям, по результатам выполнения, по ресурсам модуля, ресурсам типов сущностей, ресурсам решения. И поштучно копировать каждую строку локализации, например, в excel-файл для последующего перевода. Также не стоит забывать, что при таком сборе строк локализации есть большая вероятность что-то пропустить.
После перевода строки локализации нужно обратно добавить в среду разработки. Это очередная сложность. Из excel-файла нужно вручную поштучно копировать в нужный тип сущности, в ресурсы решения, ресурсы модуля и другие объекты.
Облегчить процесс передачи строк локализации на перевод и обратную загрузку после перевода призвана утилита импорта строк локализации. Утилита выгружает локализованные строки в excel-файл и затем после перевода позволяет загрузить локализованные строки обратно в среду разработки.
Утилита разработана на C# и использует библиотеку OpenXML для работы с excel-файлами.
Разработчик указывает путь на папку локального рабочего репозитория в поле "Папка со строками локализации" и нажимает кнопку "Экспорт". Утилита осуществляет поиск всех resx-файлов в указанной папке и выгружает строки локализации в excel-файл. В результате работы утилиты получаем следующий excel-файл.
Выгруженный excel-файл передается переводчику.
После перевода заполненный excel-файл необходимо импортировать в resx-файлы.
Примеры ошибок:
1. Проверяется наличие подстановок во всех языках.
Текст ошибки: Строка {0}. Найдено несоответствие форматов номеров в en, ru, kk строках. Проверьте наличие подстановок во всех языках.
2. Проверяется, чтобы Дополнительная информация совпадала во всех языках.
Текст ошибки: Строка {0}. В дополнительной информации, всё что в квадратных скобках нельзя переводить. Там должны быть имена свойств сущности.
3. Проверка наличия resx-файла.
Текст ошибки: В выбранной папке отсутствует resx файл "{0}". Импорт невозможен
Если ошибок нет, то производится импорт. Загрузка происходит для всех заполненных языков.
Для проверки результата импорта разработчик открывает среду разработки, проверяет наличие изменений в строках локализации и публикует изменения.
Эту утилиту мы в компании Армадок применяли на нескольких проектах и шаблонных решениях в Казахстане и сэкономили немало времени при относительно небольших затратах на её разработку.
Отдельно напомню, что по рекомендациям необходимо все диалоги, предупреждения, ошибки и другие подобные объекты реализовывать через строки локализации. Иначе утилита не сможет помочь при локализации интерфейса пользователя, например, в случае добавления нового языка.
Авторизуйтесь, чтобы написать комментарий