Синтаксис перевода
Синтаксис перевода
Домены перевода
Сокращения позволяют получать доступ к переводам относительно определённых контекстов.
// Относительно макета (HTML метатеги и основной фрейм страницы)
{{ '@layout::meta.description' | trans }}
// Относительно страницы (например, тело страницы или модальное окно)
{{ '@page::page_title' | trans }}
Включения
Важно уменьшить количество дублирующегося текста в файле перевода. Магические ключи позволяют включения из одного файла в другой, используя внутренний синтаксис @folder.file::key.sub_key.
Вы можете комбинировать это с ключевым словом %, если ключ или дерево ключей совпадают.
# translation-file-one.en.yml
example_key:
example_sub_key: Translation string
# translation-file-two.en.yml
example_key:
# Using this key resolves to the first file
# using the same key "example_key.example_sub_key"
example_sub_key: '@translation-file-one::%'
Расширения
Если большинство ключей в файле совпадает с другими, проще использовать синтаксис ~extends, чтобы повторно использовать все ключи и добавить только новые.
# translation-file-two.en.yml
~extends: '@translation-file-one'
Кэширование
Файлы перевода обрабатываются и кэшируются для повышения производительности.
Javascript
Переводы могут быть переданы в Javascript для динамического использования.
// template.html.twig
trans_js('@page::javascript.*')
// Hello Javascript!
app.layout.page.trans('@page::javascript.demo_text');