В настоящее время мы разрабатываем многоязычный веб-сайт с 5 разными языками. Он находится в symfony2, и мы используем файлы перевода yml для i18n. Хотя у нас это хорошо работает, иногда поддержание этих файлов может быть огромной болью в заднице. И в этом месяце мы добавляем еще 3 языка, поэтому в скором времени будет сложно обновить все файлы каждый раз, когда мы добавляем что-то в файл перевода.
Позвольте мне показать вам пример. у меня есть messages.en.yml
файл, который содержит это:
index:
header: Some text in the header
Затем нам нужно добавить или удалить что-то из этого файла перевода по умолчанию. На этот раз я добавляю новую строку.
index:
header: Some text in the header
details: And some details, I've just added
И я должен сделать это с другими 5 языковыми файлами, ища строки, где они подходят.
Конечно, это очень простой пример, но я надеюсь, что это показывает проблему. Наш языковой файл имеет длину более тысячи строк, и их 5. Когда я занимаюсь разработкой, очень неудобно добавлять одну и ту же строку в 5 разных файлов, а затем передавать ее переводчикам.
Мы пытались сравнить файл по умолчанию с какой-то системой контроля версий, но сравнение 5 разных языков все еще занимало много времени.
В общем, мой вопрос заключается в том, что это лучшая практика для поддержки нескольких файлов перевода одновременно.
Заранее спасибо,
Адам
Eсть translation:update
команда для этого, которая обновляет все переводы сообщениями, найденными в файлах ветки. Однако в настоящее время он реализован только для использования ветки компонента перевода.
Вы можете использовать JMSTranslatorBundle для извлечения всех других видов перевода, предоставляемых Symfony. Увидеть http://jmsyst.com/bundles/JMSTranslationBundle/master/usage
Других решений пока нет …