Symfony 2在子文件夹中找不到翻译文件

时间:2016-07-01 09:29:13

标签: php symfony translation

我的翻译文件位于app/Resources/translations。现在我想更好地管理它们并创建一些子文件夹,但似乎文件未加载:

{% trans_default_domain 'sub/messages' %} 
{{ 'message'|trans }} #does not work

重新排序后我也调用了php bin/console cache:clear

3 个答案:

答案 0 :(得分:2)

我已经测试了这个,这是我的结论:

如果你有:

  

翻译:
   | - sub:
   | | - messages.en.xlf(message ='message in sub')
   | - messages.en.xlf(带有message ='翻译中的消息')

{{ '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(在sub'中带有message ='message)    | - messages.en.xlf(带有message ='翻译中的消息')

{% trans_default_domain 'submessages' %}
{{ 'message'|trans }} // echo 'message in sub'

答案 1 :(得分:1)

我不确定用于存储翻译文件的子文件夹。 Translation Resource Symfony文档部分没有提及子文件夹。

但是,您可以将翻译消息组织到组(域)中。在这种情况下,必须根据以下路径命名每个消息文件:domain.locale.loader,因此您可以使用以下路径: 管理员组的文件admin.en.yml用户组的user.en.yml

答案 2 :(得分:1)