Синтаксис перевода

Синтаксис перевода

Домены перевода

Сокращения позволяют получать доступ к переводам относительно определённых контекстов.

// Относительно макета (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');