Sintaxe de tradução

Sintaxe de tradução

Domínios de tradução

Atalhos permitem acessar traduções relativas a certos contextos.

// Relativo ao layout (meta tags HTML e estrutura principal da página)
{{ '@layout::meta.description' | trans }}
// Relativo à página (corpo da página ou modal, por exemplo)
{{ '@page::page_title' | trans }}

Inclusões

É importante reduzir texto duplicado em um arquivo de tradução. Chaves mágicas permitem inclusões de um arquivo para outro usando a sintaxe interna @folder.file::key.sub_key.

Você pode combiná-la com a palavra-chave % se a chave ou a árvore de chaves for a mesma.

# 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::%'

Extensões

Se a maioria das chaves em um arquivo forem as mesmas de outro, é mais simples usar a sintaxe ~extends para reutilizar todas as chaves e apenas adicionar as novas.

# translation-file-two.en.yml
~extends: '@translation-file-one'

Cache

Arquivos de tradução são resolvidos e armazenados em cache para preservar o desempenho.

Javascript

Traduções podem ser passadas para o Javascript para uso dinâmico.

// template.html.twig
trans_js('@page::javascript.*')
// Hello Javascript!
app.layout.page.trans('@page::javascript.demo_text');