2012-06-06 15 views
3

所以我們使用的I18n到我們的網站定位於中國傳統的I18n翻譯Rails的控制檯不顯示正確的中國(或任何其他語言)

我目錄下的配置一個ZH-TW.yml文件/語言環境

我試圖看到該翻譯工作在Rails控制檯。

所以,我想:

1.9.3-p0 :001 > I18n.default_locale 
=> :zh 
1.9.3-p0 :008 > I18n.t 'users.account_header' 
=> "zh, users.account_header" 
1.9.3-p0 :009 > I18n.t "x_days", :count => 10 
=> "zh, x_days" 

爲什麼它不能返回正確的中國人的翻譯? 因此我們知道它的工作原理並獲得正確的翻譯。

我也嘗試了一些垃圾字符串,如

1.9.3-p0 :011 > I18n.t "dfkjafkjadf", :count => 10 
=> "zh, dfkjafkjadf" 

它甚至沒有抱怨翻譯丟失!

我錯過了什麼嗎?

謝謝!

+0

,這不是一個問題,當我打開默認的語言環境英語 –

回答

2

這可能聽起來很愚蠢,但它可能只是您的默認區域設置爲zh,但您的翻譯存儲在zh-TW下?

+0

其實這就是問題所在。在將yml文件重命名爲zh.yml後,I18n.translate和I18n.localize方法按照預期從zh.yml文件獲取翻譯。我看到I18n文檔說:「i18n庫採用語言環境鍵的實用方法(經過一些討論),其中僅包括語言環境(」語言「)部分,如:en,:pl,而不是區域部分,如:en-美國或:en-GB ......「所以我們只需要一個文件zh.yml,直到我們需要區分不同的中文語言。謝謝 –

3

我在我的應用程序中使用了相同的中文翻譯。

我的中國區域zh-CN.yml

zh-CN: 
    go: '進行' 
    Log out: '退出' 

Rails的控制檯:

Loading development environment (Rails 3.2.13) 
1.9.3p392 :001 > I18n.default_locale 
=> :en 
1.9.3p392 :002 > I18n.locale = 'zh-CN' 
=> "zh-CN" 
1.9.3p392 :003 > helper.t('Go') 
=> "進行" 
1.9.3p392 :004 > helper.t('Log out') 
=> "退出"