मैं इस तरह दिखता है कि एक पाठ i18n करना चाहते हैं:
पहले ही साइन अप कर चुके हैं? लॉग इन करें!
ध्यान दें कि पाठ पर एक लिंक है। इस उदाहरण पर यह Google को इंगित करता है - वास्तव में यह मेरे ऐप के लिए इंगित करेगा log_in_path
।
मुझे ऐसा करने के दो तरीके मिले हैं, लेकिन उनमें से कोई भी "सही" नहीं दिखता है।
पहला तरीका जो मुझे पता है उसमें यह शामिल है en.yml
:
log_in_message: "Already signed up? <a href='{{url}}'>Log in!</a>"
और मेरे विचार में:
<p> <%= t('log_in_message', :url => login_path) %> </p>
यह काम करता है , लेकिन इस <a href=...</a>
भाग पर होने en.yml
से मुझे बहुत साफ नहीं लगता है।
मुझे पता है कि दूसरा विकल्प स्थानीयकृत विचारों का उपयोग कर रहा है - login.en.html.erb
और login.es.html.erb
।
यह भी सही नहीं लगता है क्योंकि केवल एक ही पंक्ति एक उल्लिखित होगी; बाकी दृश्य (~ 30 लाइनें) सभी दृश्यों के लिए दोहराया जाएगा। यह बहुत DRY नहीं होगा।
मुझे लगता है कि मैं "स्थानीयकृत धारावाहिकों" का उपयोग कर सकता हूं लेकिन यह बहुत कम्बर्स्टोन लगता है; मुझे लगता है कि मैं इतने छोटे दृश्य फ़ाइलों के लिए पहला विकल्प पसंद करता हूं।
तो मेरा सवाल यह है: क्या इसे लागू करने का एक "उचित" तरीका है?