我有我的翻译文件在app/Resources/translations
。现在我想更好地管理它们,并创建一些子文件夹,但似乎文件没有加载:
{% trans_default_domain 'sub/messages' %}
{{ 'message'|trans }} #does not work
我在重新排序
php bin/console cache:clear
我已经测试过了,下面是我的结论:
如果你有:
翻译:
| - sub:
| | - messages. enen .xlf (with message = 'message in sub')
| - messages.en.xlf (with message = 'message in translation')
{{ 'message'|trans }} // echo 'message in sub'
{% trans_default_domain 'messages' %}
{{ 'message'|trans }} // echo 'message in sub'
{% trans_default_domain 'sub/messages' %}
{{ 'message'|trans }} // echo 'message' -> don't translate (it's your problem)
要解决这个问题,可以重命名子目录
中的文件翻译:
| - sub:
|,,,,,, | - - - - - - submessages .en。XLF (with message = 'message in sub')
| - messages.en.xlf (with message = 'message in translation')
{% trans_default_domain 'submessages' %}
{{ 'message'|trans }} // echo 'message in sub'
我不确定用于存储翻译文件的子文件夹。翻译资源Symfony文档部分没有提到子文件夹
但是,您可以将翻译消息组织到组(域)中。在这种情况下,每个消息文件必须根据以下路径命名:domain.locale.loader
,因此您可以将admin.en.yml
文件用于admin组或user.en.yml
文件用于用户组。
我认为除了编写自定义加载器之外,没有其他方法可以做到这一点:https://symfony.com/doc/current/components/translation/custom_formats.html creating-a-custom-loader