2014-12-28 40 views
2

我在Symfony 2翻譯組件上進行實驗。我的默認語言環境是el_GR,我的備用語言環境是en_US。我建立了我的config.yml,我創建了兩個翻譯文件:messages.el_GR.yml和messages.en_US.yml,然後清除app/cache。我已經在兩種語言環境中翻譯了Symfony這個詞。所以,當我用命令的PHP應用程序/臺譯:調試EN_US abcNikBundle我得到:Symfony 2:轉換爲默認語言環境

State | Id  | Message Preview (en_US) | Fallback Message Preview (el_GR) 
     | Symfony | Symfony_US    | Symfony_GR 

所以在樹枝模板我寫

{{ 'Symfony'|trans({},'messages') }} 

當我使用en_US區域設置它工作正常,(它打印Symfony_US)但是當我使用我的默認語言環境(el_GR)時,它會打印Symfony而不是Symfony_GR。能以某種方式完成嗎?

+1

嘗試徹底刪除緩存目錄。另外,如果找不到翻譯,它會以調試模式登錄 - 請檢查您的日誌以查看它是否找不到翻譯。另外,您不必指定'messages',因爲這是默認設置,您可以執行'{{'Symfony'| trans}} –

+0

我刪除了緩存目錄,它工作正常!萬分感謝! – iiirxs

+0

沒問題!我將添加它作爲答案 –

回答

3

確保您的緩存已完全刪除。添加英文翻譯後,您可能會重置緩存,但不是您的後備。更多信息,請參見Symfony documentation

每次創建一個新的翻譯資源(或安裝了一個包含翻譯資源束),一定要清除緩存,這樣的Symfony可以發現新的翻譯資源:

有時只是運行cache:clear命令失敗,在這種情況下,我只是手動刪除app/cache目錄的內容。

此外,如果無法找到翻譯,則會在翻譯通道中以調試模式登錄(dev.translation.log) - 檢查日誌以查看它是否找不到翻譯。此外,您不必指定'消息',因爲這是默認設置,您可以執行{{ 'Symfony'|trans }}

相關問題