2009-05-22 19 views
6

मैंने अनुवाद फ़ाइल में अनुवादित विशेषताओं और मॉडल नामों को परिभाषित किया है और Modelname.human_attribute_name (...) सही ढंग से अनुवादित विशेषता नाम देता है, लेकिन विशेषता नाम त्रुटि संदेश अप्रतिबंधित हैं। क्या आवश्यक है कि त्रुटि संदेशों में विशेषता नाम का अनुवाद किया गया हो? सुनिश्चित करें कि आपके सभी "टैब" वास्तव में कर रहे हैं के बाद से इस YAML हैरेल त्रुटि संदेशों में अनुवादित गुण (रेल 2.3.2, I18N)

en: 
    activerecord: 
    models: 
     user: Dude 
    attributes: 
     user: 
     login: "Handle" 

,:

+0

मुझे एक ही समस्या है। लेकिन मेरे ऐप अनुवाद में मॉडल नामों के लिए काम नहीं करता है। रेल कोड में शायद एक बग क्या है। हालांकि विशेषता नामों का सही ढंग से अनुवाद किया जाता है। –

उत्तर

13

विषय पर Guide से, आप ऊपर स्थानीयकरण फ़ाइल ठीक से अपने मॉडल नाम के साथ नाम की स्थापना की और विशेषता की आवश्यकता होगी दो नरम रिक्त स्थान। फिर आप User.human_name और User.human_attribute_name(:login) के साथ उन्हें बाहर निकाल सकते हैं।

मैंने इसे सुसमाचार के लिए नहीं लिया - वहां एक बग हो सकता था। मैंने इसका परीक्षण किया, और यह ठीक काम करता है। मैंने Model नामक एक मॉडल बनाया है जिसका गुण title है।

<h1>New <%= Model.human_name %></h1> 
<% form_for(@model) do |f| %> 
    <%= f.error_messages %> 
    <%= Model.human_attribute_name("title") %><br /> 
    <%= f.text_field :title %> 
    <%= f.error_message_on :title %> 
... 

और ठीक से अनुवादित उत्पादन का एक स्क्रीनशॉट:

fr: 
    activerecord: 
    models: 
     model: "Sumfink" 
    attributes: 
     model: 
     title: "Tiltile" 

यहाँ आंकड़े देख सकते हैं कोड है: यहाँ config/locales में मेरी fr.yml फ़ाइल का एक टुकड़ा है http://screencast.com/t/et5FhVe1Gp

+0

आपके विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद। मैंने इसे एक नई परियोजना के साथ कोशिश की। मैंने एक मौजूदा प्रोजेक्ट से एक अनुवाद फ़ाइल का उपयोग किया और अनुवाद का परीक्षण करने के लिए एक नया मॉडल जोड़ा और अनुवाद तुरंत काम किया। मेरे पास मूल अनुवाद फ़ाइल तक पहुंच नहीं है, जहां तारों का अनुवाद के लिए उपयोग नहीं किया गया था, क्योंकि यह मेरे कार्यस्थल पर है। मैं अलग-अलग देखने के लिए सोमवार को इसे देखूंगा। सफल अनुवाद के साथ आवेदन लिनक्स पर चल रहा था, विंडोज़ में काम पर एप्लिकेशन चलाता है। –

+0

मेरी अनुवाद फ़ाइल सही थी। मैंने स्तंभ नाम के "_id" भाग को हटा दिया क्योंकि वे दृश्य के त्रुटि संदेश में नहीं दिखाए गए हैं। मैंने "model_id" के बजाय "मॉडल" का उपयोग किया। –

+0

स्क्रीनशॉट का लिंक टूटा हुआ है। क्या आपके पास कोई अन्य आपूर्ति हो सकती है? धन्यवाद – mkelley33

1

इयान को कुडोस, बस असफल सत्यापन के मामले में लेबल को हाइलाइट करने के लिए इसे जोड़ना चाहते थे, आपको इसे इस तरह लिखना होगा:

<%= f.label "title", Model.human_attribute_name("title") %><br /> 

किसी कारण के लिए, यह लेखन जैसे:

<%= f.label "title" %><br /> 

अनुवाद प्रदर्शित नहीं करता है।

+2

आप रेल का किस संस्करण का उपयोग कर रहे हैं? लेबल की यह बग 2.3.6 में तय की गई थी: https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n – giraff

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