5

कुछ फ़ील्ड का अनुवाद करने के लिए DRY तरीका क्या है?रेल I18n: अनुवाद कॉल को कम करें (कम से कम विचारों में)

मेरी RESTful विचारों में, मैं एक शो दृश्य में कुछ दोहराई जाने वाली स्निपेट हैं तो इस तरह:

... 
<dt><%= t("activerecord.attributes.user.firstname") %></dt> 
<dd><%= @user.firstname %></dd> 
... 

अब, बार बार t("activerecord.attributes.user.attr_name") लिखने की बजाय, मैं केवल t(:attr_name) लिखने के लिए चाहते हैं (फॉर्म-व्यू में f.label :firstname के समान)।

असल में, यह एक समस्या नहीं होनी चाहिए (कम से कम विश्वसनीय विचारों के लिए), क्योंकि I18n मॉड्यूल मॉडल नाम को निकालने के लिए controller विधि से पूछताछ कर सकता है और फिर सही अनुवाद स्ट्रिंग का अनुमान लगा सकता है।

मेरा प्रश्न: क्या किसी के पास इस दृष्टिकोण के साथ व्यावहारिक अनुभव है? क्या इसके लिए रूबीगेम भी हो सकता है? या: क्या नुकसान हैं, मैंने नहीं सोचा था?

उत्तर

2

यह करने के लिए सिफारिश की जिस तरह से एक आंशिक में डाल करने के लिए है (app/views/user/_form.html.erb जैसे या यहाँ तक कि app/views/user/_user.html.erb), और फिर एक प्रमुख डॉट है, इस प्रकार के साथ नाम लगाएं:

<dt><%= t(".firstname") %></dt> 
<dd><%= user.firstname %></dd> 

अधिक जानकारी: examples (से Agile Web Development with Rails); Rails documentation

+3

आंशिक का उपयोग शांत होना प्रतीत होता है, लेकिन मुझे लगता है कि यह केवल DRY होगा, यदि वही सामग्री दोहराया जाएगा। दस्तावेज यह भी कहता है, लोगों/index.html.erb टेम्पलेट से 'टी ('। Foo ')' को कॉल करना वास्तव में 't ('people.index.foo') को कॉल कर रहा है। मैं अपनी लोकेल फाइलों में गड़बड़ी को बनाए रखना नहीं चाहता ... – DMKE

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