翻譯文件我已經在我的app/Resources/translations
翻譯文件。現在,我想更好地管理它們,並創建一些子文件夾,但隨後似乎文件未加載:的Symfony 2中未找到的子文件夾
{% trans_default_domain 'sub/messages' %}
{{ 'message'|trans }} #does not work
我也叫php bin/console cache:clear
重新排序
翻譯文件我已經在我的app/Resources/translations
翻譯文件。現在,我想更好地管理它們,並創建一些子文件夾,但隨後似乎文件未加載:的Symfony 2中未找到的子文件夾
{% trans_default_domain 'sub/messages' %}
{{ 'message'|trans }} #does not work
我也叫php bin/console cache:clear
重新排序
後,我不知道有關的子文件夾,用於存儲翻譯文件。 Translation Resource Symfony文檔部分沒有提到子文件夾。
但是,你可以組織翻譯的消息成組(域)。在這種情況下,每個消息文件必須按照以下路徑命名:domain.locale.loader
,因此你可以有例如文件admin.en.yml
爲您管理組或user.en.yml
您用戶組。
我測試過這一點,這裏是我的結論:
如果您有:
翻譯:
| - sub:
| | - messages.en.xlf(message ='message in sub')
| - messages.en.xlf(有消息= '翻譯消息')
{{ '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:
| | - 子消息 .en.xlf(具有消息= '在副信息')
| - messages.en.xlf(有消息=「翻譯消息」)
{% trans_default_domain 'submessages' %}
{{ 'message'|trans }} // echo 'message in sub'
正確,現在我記得,如果你設置子文件夾爲locales(en,nl,de等),symfony也會識別這個 – Nickolaus
我想你有沒有其他方式比在爲了做到這一點編寫自定義裝載機: https://symfony.com/doc/current/components/translation/custom_formats.html#creating-a-custom-loader
對不起,這沒有幫助。當然,我可以創建不同的文件(域),但所有的域/文件都在一個文件夾中 – Asara