2017-03-17 37 views
1

我正在使用symfony,並且在我的包中我需要創建一些翻譯,但我寧願在與「消息」不同的域中執行操作,例如FOS User Bundle使用FOSUserBundle域)。如何在Symfony中爲翻譯添加新域名

所以我用我的翻譯創建了一個MyBundle.en.yml文件,但它們沒有加載。我讀過,我需要做的文件中:

$translator->addLoader('xlf', new XliffFileLoader()); 

$translator->addResource('xlf', 'messages.fr.xlf', 'fr_FR'); 
$translator->addResource('xlf', 'admin.fr.xlf', 'fr_FR', 'admin'); 
$translator->addResource(
    'xlf', 
    'navigation.fr.xlf', 
    'fr_FR', 
    'navigation' 
); 

http://symfony.com/doc/current/components/translation.html#using-message-domains

但我應該在哪裏做呢?

更新

經過一番調查,如果我運行調試的翻譯它說,所有我用我的模板域的翻譯缺失。

我的翻譯文件位於的src/Acme的/包/ MyBundle /資源/譯/ MyDomain.yml

我試圖位於應用程序/資源/翻譯/ MyDomain.yml但同樣的結果。

我也試着刪除緩存(室射頻應用程序/緩存),但仍然沒有工作

回答

2

的Symfony會自動爲你做這個,如果你放置在正確的位置(一個或多個)文件。您可以在文檔中找到Symfony假定的約定的完整描述:https://symfony.com/doc/current/translation.html#translation-resource-file-names-and-locations

Best Practices-guide建議將它們存儲在app/Resources/translations/中。或者,您可以將它們放入捆綁軟件的翻譯文件夾中:src/MyBundle/Resources/translations

請注意,您必須在使用翻譯器時指定您的網域,例如,在你的樹枝模板中。請參閱:

+0

我認爲我做的一切正常,我有一些測試,我做了 – petekaner

+0

在你更新的問題,我發現張貼的路徑更新的問題2錯誤: - 目錄資源是小寫字母,但應以大寫字母開頭R - 翻譯文件未指定語言環境,例如'MyDomain.en.yml' – dbrumann

+0

是的,對!我錯過了文件中的語言。謝謝! – petekaner