दूसरा व्यक्ति सही होने का एक बेहतर मौका है। पूंजीकरण कब और जब लोकेल पर निर्भर नहीं किया जाता है तो आप नहीं जान सकते कि t(:hello).capitalize
आसपास के संदर्भ को देखे बिना सही परिणाम देगा।
t(:hello_button)
और फिर अपने अंग्रेजी YAML में:
hello_button: "Hello"
इस तरह अनुवाद का उपयोग कर सकते जो भी मामला उचित है या तो की तुलना में एक बेहतर दृष्टिकोण प्रतीक में संदर्भ, कुछ इस तरह शामिल करने के लिए किया जाएगा प्रश्न में भाषा के लिए। साथ ही, कभी-कभी अंग्रेजी दो शब्दों के लिए एक ही शब्द का उपयोग करेगी जब अन्य भाषाएं अलग-अलग शब्दों का उपयोग करेंगी: नारंगी रंग और नारंगी फल पर विचार करें; इसलिए आपके अनुवाद में संदर्भ का महत्व।
इसके अलावा, capitalize
केवल ASCII वर्ण पर काम करता है जब तक आप मिश्रण में एक mb_chars
फेंक:
> 'µ'.capitalize
=> "µ"
> 'µ'.mb_chars.capitalize.to_s
=> "Μ"
आप शब्दों की शुरुआत में एक अग्रणी µ
लेकिन सरल लहजे का सामना नहीं कर सकते हैं काफी आम है:
> 'éclair'.capitalize
=> "éclair"
> 'éclair'.mb_chars.capitalize.to_s
=> "Éclair"
यह केवल यह मानकर कि आप सभी भाषाओं को अंग्रेजी की तरह व्यवहार करते हैं, की कठिनाइयों की सतह खरोंच कर रहे हैं। बस pluralization rules से निपटना शुरू करने तक प्रतीक्षा करें।
एल 10 एन में मूल नियम उपयोगकर्ता के सामने वाले तारों को उस डेटा के अपारदर्शी ब्लब्स के रूप में पेश करना है जो आप किसी प्रकार के डेटाबेस से बाहर खींचते हैं और बिना किसी मैनिपुलेशन के उपयोगकर्ता को दिखाते हैं। हां, यह आपके कोड को और अधिक जटिल बनाता है लेकिन शुद्धता महत्वपूर्ण है।
जबकि मैं यहाँ हूँ, अलग-अलग शब्दों का अनुवाद करने का प्रयास एक समझ से बाहर गंदगी का उत्पादन करता है, आप बेहतर परिणाम यदि आप पूरे वाक्यों का अनुवाद होगा।
स्रोत
2012-08-29 01:53:16
यह ध्यान देने योग्य है कि भाषा की सामग्री बहुत जटिल हो सकती है। यह एक बहुत ही सरल उदाहरण है। क्या आपके पास और यथार्थवादी उपयोग के मामले हैं? – tybro0103