2015-12-30 147 views
5

如何在Phoenix中設置語言環境,以便使用priv/gettext/{lang} /LC_MESSAGES/errors.po?如何設置error.po的區域設置?

作爲測試,我用mix gettext.merge priv/gettext --locale ja構建了語言環境文件,並在其中翻譯了一些詞。

如果我在模板文件中明確地調用put_locale/2web/views/error_helpers.ex<%= translate_error(message) %>,但它在DRY點上有點難看,它會有效。

def translate_error(msg) do 
    Gettext.put_locale(LoginStudy.Gettext, "ja") 
    Gettext.dgettext(LoginStudy.Gettext, "errors", msg) 
end 

有沒有更好的方法來設置默認的語言環境?我在config/config.ex中指定了default_locale,但它不起作用。

config :login_study, LoginStudy.Endpoint, default_locale: "ja", 

最好的問候,

回答

5

大問題@hykw!由於Phoenix中的Gettext支持是新的,文檔現在剛剛開始出現。

一個很好的出發點就是這個優秀的博客文章由麗貝卡·斯金納:http://sevenseacat.net/2015/12/20/i18n-in-phoenix-apps.html

例如,如果你想設置的區域設置爲日語只爲你的一些Web請求,您可以定義一個插件,因爲她與MyApp.Locale一起完成,並在請求生命週期開始時運行它。我只是不建議在會話中存儲區域設置,而是將其保留爲URL或其他參數的一部分。

config :my_app, MyApp.Gettext, default_locale: "ja" 

您可以找到有關這對一個Gettext文檔的詳細信息:http://hexdocs.pm/gettext/Gettext.html

+0

何塞

但是,如果你想要的語言環境總是是日本,您可以在配置文件中寫,感謝您的網址和配置!它完美的工作! – hykw

相關問題