Интернационализация¶
Интернационализация и локализация адаптируют приложения и их содержимое к конкретному
региону или стране пользователей. В Symfony это запрашиваемая функция, которая должна
быть установлена до её использования (composer require translation
).
Локация исходного файла перевода¶
Best Practice
Храните файлы переводов в каталоге translations/
в корне вашего проекта.
Жизни ваших переводчиков будут куда проще, если все переводы приложения будут находиться в одной центральной локации.
Формат исходного файла перевода¶
Компонент Переводчик Symfony поддерживает множество разных форматов
перевода: PHP, Qt, .po
, .mo
, JSON, CSV, INI, и др.
Best Practice
Используйте формат XLIFF для ваших файлов перевода.
Из всех доступных форматов перевода, только XLIFF и gettext имеют широкую поддержку в инструментах, используемых профессиональными переводчиками. И так как он базирован на XML, вы можете валидировать содержимое файла XLIFF при его написании.
Symfony поддерживает примечания в файлах XLIFF, что делает их более удобными в использовании для переводчиков. В конце-концов, хорошие переводчики заботятся о контексте, а эти примечания XLIFF позволяют вам определять этот контекст.
Tip
Пакет переводов PHP включает в себя продвинутые извлекатели, которые могут читать ваш проект и автоматически обновлять XLIFF файлы.
Ключи перевода¶
Best Practice
Всегда используйте ключи для переводов вместо строк содержания.
Использование ключей успрощает управление файлами переводов, так как вы можете изменить исходное содержание, не обновляя все файлы переводов.
Ключи должны всегда описывать их цель и не описывать локацию. Например,
если форма имеет поле с ярлыком "Username", то хорошим ключом будет
label.username
, а не edit_form.label.username
.