9

मैं रूबी 3.1 पर रूबी का उपयोग कर रहा हूं और मैं जानना चाहता हूं कि आंशिक टेम्पलेट फ़ाइलों से संबंधित अंतर्राष्ट्रीयकरण को सही तरीके से कैसे संभालना है। यही कारण है,आंशिक टेम्पलेट फ़ाइलों के साथ i18n मणि का उपयोग करने में समस्या

है ... ... मेरे app/views/users/flag.html.erb फ़ाइल में मेरे पास है:

<%= t('.test_key1') %> 
<%= render :partial => "https://stackoverflow.com/users/flag_form" %> 

... मेरी app/views/users/_flag_form.html.erb फ़ाइल में मेरे पास है:

<%= t('.test_key2') %> 
मेरी config/locales/views/users/en.yml फ़ाइल में

है (नोट: मैं official RoR guide में बताई गई फ़ाइलों का आयोजन कर रहा हूं) मैं

en: 
    users: 
    flag: 
     test_key1: Test 1 text 
     test_key2: Test 2 text 
का उपयोग करता हूं

Test 1 text "मुख्य" टेम्पलेट (app/views/users/flag.html.erb) में प्रदर्शित किया जाता है, लेकिन Test 2 text आंशिक टेम्पलेट (app/views/users/_flag_form.html.erb) के लिए नहीं है। Test 2 text को सही ढंग से प्रदर्शित करने के लिए मुझे इस समस्या को कैसे हल करना चाहिए?

+0

इससे आपकी समस्या (और मेरा) का समाधान नहीं होगा, लेकिन समझने के लिए जहां रेल अनुवाद https://github.com/256dpi/rails-i18n-debug – masciugo

उत्तर

10

एकमात्र तरीका पूर्ण स्टॉप का उपयोग करके "आलसी लोडिंग" के बजाय दायरे का उपयोग करना होगा। कुछ इस तरह काम करना चाहिए:

I18n.t :test_key2, :scope => 'users.flag' 

या उपयोग:

I18n.t "users.flag.test_key2" 

अंत में, आप भी यह आंशिक के रूप में

<%= render :partial => "https://stackoverflow.com/users/flag_form", :locals => { :test_key => t('.test_key1') } %> 

में तुम भी परिशिष्ट अनुभाग चेकआउट चाहिए गुजर सकता है इस वेबसाइट पर यह कुछ ऐसा सूचीबद्ध हो सकता है जो मुझे याद आ रही है: http://www.unixgods.org/~tilo/Rails/where_is_Rails_trying_to_lookup_L10N_strings.html

+0

अपने लिंक के लिए देखो मदद कर सकते हैं मृत :( –

0

मैंने यह लिखा था। आपने इस बारे में क्या सोचा?

def translate_for_partials key, *args 
    I18n.t("#{params[:controller].gsub('/', '.')}.#{params[:action]}.#{key}", *args) 
end 

क्या ऐसा कोई तरीका बनाना बुरा है?

+0

विचारों में आप एक क्लीनर संस्करण कर सकता है: I18n.t ("।। # {controller_name} # {controller.action_name} # {कुंजी}") – Magnuss

+0

Magnuss, इस नेस्टेड नियंत्रक 'पैरामीटर [के लिए है: नियंत्रक] .gsub ('/', '।') ' –

15

config/स्थानों/en.yml

en: 
    users: 
    flag: 
     test_key1: Test 1 text 
    flag_form: 
     test_key2: Test 2 text 

एप्लिकेशन/विचारों/उपयोगकर्ताओं/flag.html.erb

<%= t('.test_key1') %> 
<%= render :partial => "https://stackoverflow.com/users/flag_form" %> 

एप्लिकेशन/विचारों/उपयोगकर्ताओं/_flag_form.html .erb

<%= t('.test_key2') %> 

एनबी:

  1. रेल देखने के लिए पथ प्रतीक को YAML पथ से मेल खाना चाहिए। आपको YAML फ़ाइल में एक प्रविष्टि बनाने की आवश्यकता है जो दृश्य के नाम से मेल खाता है। पिछला अंडरस्कोर छोड़ दें क्योंकि यह आंशिक है।
  2. और पढ़ें के बारे में lazy lookups
+2

टी एल; डॉ अपने _partial फ़ाइल के नाम में अंडरस्कोर रखें, अंडरस्कोर के बिना अपने YAML पेड़ का निर्माण एन:। उपयोगकर्ता: आंशिक: – givanse

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