1

我正在使用standard Rails I18n API來本地化我們的某些視圖。這工作得非常好,但我們現在有幾個用於區域更改en語言環境的用例。使用Rails支持不同的區域設置區域i18n

API guide提到這不是直接支持,應該使用其他插件。但是,我想知道是否有更簡單的方法來做到這一點。

我已經有en.yml,所以理論上我可以創建en-AU.ymlen-US.yml它們是有效的en.yml但隨着應用的幾個區域變化的克隆。然後,我可以將其他English - AmericanEnglish - Australian選項添加到我們的配置中,該配置將映射到新的特定於區域的區域設置,並允許用戶使用區域特定的區域設置。

我能想到的唯一問題就是它不是乾的 - 我會爲所有普通的英文單詞重複翻譯。我看不到解決這個問題的辦法。

這種方法還有什麼其他的缺點嗎?或者我應該只是咬緊牙關,而不是像Globalize2那樣插入其中一個插件呢?

回答

6

rails-i18n-translation-inheritance-helper現在已經有點老了,所以這裏是我的Rails 3.2項目的方法。

如果你在同一個en.yml文件保持了en-US名稱和en-AU可以使用YML重複節點有一個超級連接部分:

例如:

en: &en 
    errors: 
    messages: 
     expired: "has expired, please request a new one" 
     not_found: "not found" 

en-US 
    <<: *en 

en-AU 
    <<: *en 
    errors: 
    messages: 
     not_found: "tis not found"