2011-08-04 14 views
13

मैं अनुवाद करने योग्य होने वाले एप्लिकेशन को विकसित करने के लिए सिम्फनी 2 का उपयोग कर रहा हूं। एप्लिकेशन को * .js और * .css फ़ाइलों को छोटा और गठबंधन करने के लिए एसेटिक सक्षम किया गया है। हालांकि, मेरे पास एक jQuery प्लगइन है जिसे मैंने लिखा है, जिसमें इसमें शाब्दिक तार हैं। उदाहरण के लिए, निम्नलिखित कोड पर विचार करें:संपत्ति संपत्तियों में जावास्क्रिप्ट शाब्दिक तारों का अनुवाद करने का सबसे अच्छा तरीका क्या है?

$('<p>Are you sure you want to proceed?</p>').dialog({ 
     buttons: { 
      "Yes" : function() { 
       // ... 
      }, 
      "No" : function() { 
       // ... 
      } 
     } 
    }); 

ऊपर स्निपेट में, "क्या आपको यकीन है ...", "हाँ" और "नहीं" हमेशा अंग्रेज़ी, हो जाएगा और मैं में टहनी templating उपयोग नहीं कर सकते .js फ़ाइल को इसका उपयोग करने के लिए अनुवाद करने के लिए फ़ाइल: {{"yes" | trans}}

मैं क्या जानना चाहता हूं, सिम्फनी 2 अनुवाद तंत्र में निर्मित लाभ उठाने के लिए टिग का उपयोग करने का सबसे अच्छा तरीका क्या होगा मेरी जेएस स्क्रिप्ट में शाब्दिक तारों का अनुवाद करें।

उदाहरण के लिए बनाने का कोई तरीका है: myscript.js.twig फ़ाइलें?

उत्तर

26

उदाहरण के लिए बनाने का कोई तरीका है: myscript.js.twig फ़ाइलें?

यह एक बुरा विचार प्रतीत होता है।


आप देख सकते हैं https://github.com/willdurand/BazingaExposeTranslationBundle

या यह अपने आप को बनाने के लिए, उदाहरण के लिए अपने खाके में शामिल हैं:

<script type="text/javascript"> 
    var translations = { 
     // ... 
     'yes' : {{ 'yes' | trans }}, 
     // ... 
    } 
</script> 

तो अगर आपके जावास्क्रिप्ट फ़ाइल शामिल किया गया है सिर्फ </body> इससे पहले कि आप translations चर का उपयोग कर सकते हैं इस में।

+0

आपके विचार दोनों सही हैं! मुझे लगता है कि बिल्ली को त्वचा के लिए हमेशा एक से अधिक तरीके हैं! ;) –

+1

बंडल अच्छा लग रहा है। सलाह के लिए धन्यवाद! – eav

+0

आपको '{{'yes' | ट्रांस}} 'उद्धरण के साथ या यह एक त्रुटि फेंक देगा। – drskullster

0

मैं make twig.js work with translations पर कुछ खोज रहा था जो मुझे सबसे अच्छा समाधान की तरह लगता है। फिर भी खोज रहे हैं।

इस बीच, मैं इस jsgettext का उपयोग कर रहा हूं जो जोशुआ आई मिलर द्वारा जावास्क्रिप्ट में गेटटेक्स्ट कार्यान्वयन है। मूल repo नीचे है के बाद से मैं github पर वापस अपलोड कर दिया है।

<script language="javascript" src="/path/LC_MESSAGES/myDomain.json"></script> 
<script language="javascript" src="/path/Gettext.js"></script> 

आप अपने डोम में अपनी अनुवाद फ़ाइलें लोड और jsgettext यह पार्स कर सकते हैं:

function _(msgid) { return gt.gettext(msgid); } 

alert(_("some string")); 

Symfony से आपके अनुवाद फ़ाइलों का पथ पाने के लिए आपको कुछ php/टहनी विस्तार बनाने के लिए होगा अनुवादक सेवा के आसपास लेकिन यह आपके अनुवाद संसाधनों को डुप्लिकेट किए बिना बहुत अच्छा काम करता है।

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

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