Symfony捆绑包含不同语言的不同文本

时间:2016-11-11 13:04:16

标签: php symfony

我想创建Symfony包,用于保存不同语言的不同文本/标志等。

是否可以(并且正确)以某种方式使用Symfony转换器来实现此功能? 或者只是两张桌子?

1 个答案:

答案 0 :(得分:1)

不确定,如果我理解正确的话。

但是对于不同语言的不同文本,只需使用翻译组件http://symfony.com/doc/current/translation.html

基本上,您创建了两个文件 - mytranslation.en.yml mytranslation.cs.yml (英语和捷克语)。它们中的每一个都具有相同的翻译键,例如:

app.title: My English title
app.description: This is my English translation.
app.counter: You have been here %count% times so far.

然后,在控制器或服务中,使用翻译服务,如下所示:

$title = $this->get('translator')->trans('app.title', [], 'mytranslation');

或使用参数:

$counter = $this->get('translator')->trans('app.counter', ['%counter%' => 2], 'mytranslation');

在Twig模板中,您可以这样做:

{% trans_default_domain "mytranslation" %}
{{ 'app.title'|trans }}
{{ 'app.counter'|trans({'%counter%': 2}) }}