2015-12-30 7 views
5

निजी/गेटटेक्स्ट/{lang} /LC_MESSAGES/errors.po का उपयोग करने के लिए फीनिक्स में लोकेल कैसे सेट करें?त्रुटियों के लिए लोकेल कैसे सेट करें?

एक परीक्षण के रूप में, मैंने लोकेल फ़ाइल को mix gettext.merge priv/gettext --locale ja के साथ बनाया, और इसमें कुछ शब्दों का अनुवाद किया।

यह काम करता है अगर मैं स्पष्ट रूप से एक टेम्पलेट फ़ाइल में web/views/error_helpers.ex और <%= translate_error(message) %> में put_locale/2 फोन है, लेकिन यह एक सा बदसूरत है, सूखी के एक बिंदु में।

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! चूंकि फीनिक्स में गेटटेक्स्ट समर्थन नया है, दस्तावेज अभी दिखाना शुरू हो रहा है। , http://sevenseacat.net/2015/12/20/i18n-in-phoenix-apps.html

उदाहरण के लिए, आप केवल अपने वेब अनुरोध से कुछ के लिए जापानी करने के लिए स्थान निर्धारित करना चाहते हैं, तो आप एक प्लग परिभाषित कर सकते हैं वह के रूप में:

एक अच्छा प्रारंभिक बिंदु रेबेका स्किनर द्वारा इस उत्कृष्ट ब्लॉग पोस्ट है MyApp.Locale के साथ किया, और इसे अपने अनुरोध जीवन चक्र की शुरुआत में चलाएं। मैं सिर्फ सत्र में लोकेल को स्टोर करने की सलाह नहीं देता हूं बल्कि इसे यूआरएल या कुछ अन्य पैरामीटर के हिस्से के रूप में रखता हूं। http://hexdocs.pm/gettext/Gettext.html

+0

जोस:

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

आप gettext डॉक्स पर इस बारे में अधिक जानकारी पा सकते हैं:

हालांकि, अगर आप के स्थान चाहते हैं हमेशा जापानी हो, तो आप अपने कॉन्फ़िग फ़ाइल में लिख सकते हैं यूआरएल और कॉन्फ़िगरेशन के लिए धन्यवाद! यह पूरी तरह से काम करता है! – hykw

संबंधित मुद्दे