2011-10-07 12 views
25

जब मैं इसमें कोई त्रुटि सबमिट करता हूं, तो यह एक त्रुटि संदेश देता है। I18n के साथ मैं इन त्रुटि संदेशों का अनुवाद कैसे कर सकता हूं? मेरे पास पहले से ही मेरे विचारों में सभी अन्य ग्रंथों के लिए अनुवाद है, इसलिए मुझे पता है कि एल 18 एन रेल में कैसे काम करता है। अब मुझे यह मिलता है:सक्रिय रिकॉर्ड मॉडल सत्यापन का अनुवाद कैसे करें

2 errors prohibited this user from being saved: 

Email translation missing: nl.activerecord.errors.models.user.attributes.email.blank 
Email translation missing: nl.activerecord.errors.models.user.attributes.email.blank 

मैं शीर्षक और त्रुटियों दोनों का अनुवाद करना चाहता हूं।

उत्तर

32

होगा खिताब के लिए अनुवाद :

nl: 
    activerecord: 
    errors: 
     template: 
     header: 
      one: "1 error prohibited this %{model} from being saved" 
      other: "%{count} errors prohibited this %{model} from being saved" 
     body: "There were problems with the following fields:" 

त्रुटि संदेशों का अनुवाद करने के लिए, रेल आप करेंगे से अनुवाद की निम्न क्रम:

activerecord.errors.models.user.attributes.name.blank 
activerecord.errors.models.user.blank 
activerecord.errors.messages.blank 
errors.attributes.name.blank 
errors.messages.blank 

तो तुम जोड़ सकते हैं:

nl: 
    activerecord: 
    errors: 
     models: 
     user: 
      attributes: 
      email: 
       blank: "foo blank in nl bar baz" 

यह Rails Internationalization (I18n) API Guide में दर्ज है, तो आप कुछ अधिक जानकारी दे सकता है।

+0

सही, मैंने वास्तव में नोटिस नहीं किया था। मैं स्पष्ट करने के लिए व्यवस्थापक भाग को हटा दूंगा। धन्यवाद! – tbuehlmann

10

rails I18n guide इस सुंदर अच्छी तरह से शामिल है।

आप config/locales/nl.yml में निम्नलिखित डाल गुण अनुवाद करने के लिए कर सकते हैं:

nl: 
    activerecord: 
    models: 
     user: "User" 
    attributes: 
     email: "Email" 

त्रुटि संदेश के लिए, ActiveRecord उन्हें निम्नलिखित नामस्थान में दिखेगा:

activerecord.errors.models.[model_name].attributes.[attribute_name] 
activerecord.errors.models.[model_name] 
activerecord.errors.messages 
errors.attributes.[attribute_name] 
errors.messages 

model, attribute और value इंटरपोलेटेड और आपके अनुवादों में उपलब्ध हैं, उदाहरण के लिए:

nl: 
    errors: 
    messages: 
     blank: "Please fill the %{model}'s %{attribute}" 
20

बस डच अनुवाद फ़ाइल का उपयोग करें जिसे आप find here कर सकते हैं। इसमें अधिकांश (यदि नहीं सभी) ActiveRecord सत्यापन संदेश के लिए अनुवाद शामिल हैं।

फ़ाइल को अपनी परियोजना में config/locales/ पर कॉपी करें।

वैकल्पिक विधि

आप अद्यतन अनुवाद से लाभ चाहते हैं, अपने Gemfile के लिए निम्न के बजाय हाथ से अनुवाद फाइलों को कॉपी जोड़ें:

gem 'rails-i18n' 
+1

यह आमतौर पर पहली चीज है जो मैं एक नया रेल ऐप बनाते समय करता हूं, क्या आपको पता है कि स्वचालित रूप से ऐसा करने का कोई तरीका है या नहीं? –

+0

कोई विचार नहीं, वास्तव में! इसके लिए एक नया प्रश्न शुरू करें;) – rdvdijk

+0

यह प्लगइन काफी अच्छा दिखता है: https://github.com/zargony/rails-i18n-updater, मैंने इसका परीक्षण नहीं किया था। –

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