我正在尝试使用symfony翻译。这是我的翻译.yml
framework:
default_locale: 'en'
translator:
paths:
- '%kernel.project_dir%/translations'
fallbacks: ['en']
我已经在翻译目录中创建了messages.en.yml。
## YAML Template.
Home: Home
Admin: Admin
Dashboard: Dashboard
Vehicles: Vehicles
Id: Id
但是当我尝试这样使用时,
{% trans %}Dashboard{% endtrans %}
我收到此错误消息,
这些消息不适用于给定的区域设置,并且不能 在回退区域设置中找到。将它们添加到翻译目录 以避免Symfony输出未翻译的内容。
区域设置由 2 个部分(语言和国家/地区(组成,并带有下划线:例如it_IT或en_EN
例如,瑞士有3种口语:
- de_CH
- ch_CH
- fr_CH
翻译文件的文件名应如下所示:
- messages.en_EN.yml
- messages.it_IT.yml
- 。
翻译密钥在每个翻译文件中应该是唯一的、点分隔的和相等的。首先是翻译密钥,然后是冒号,然后是翻译的内容。
# messages.it_IT.yml
navigation.home: Clicca per casa
navigation.help: Clicca per aiuto
# messages.en_EN.yml
navigation.home: Click for home
navigation.help: Click for help
现在,您可以在应用程序中使用导航键,一个好的 IDE 将通过选择它们来帮助您。当对应用程序的不同部分使用不同的文件时,您必须在 twig 中处理它们,例如:
{{ 'navigation.home'|trans({}, 'application') }}
{{ 'navigation.help'|trans({}, 'application') }}
<div class="error-message">
The following error occured: {{ 'error.login'|trans({}, 'messages') }}
</div>
php bin/console cache:clear
清除缓存,如果您渴望新的翻译文件,则必须这样做。
我刚刚找到了一个解决方法。 添加了消息.it.yml文件并在翻译中更改了fallbacks: ['it']
.yml
framework:
default_locale: 'en'
translator:
paths:
- '%kernel.project_dir%/translations'
fallbacks: ['it']
由于我已经添加了带有英语 bu 的 messages.en.yml 更改,我不确定为什么会发生这种情况。