翻译语法

翻译语法

翻译域

快捷方式可以访问相对于某些上下文的翻译。

// 相对于布局(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');