2013-10-27 11 views
7

मैंने follow the guide पर कोशिश की लेकिन यह पर्याप्त स्पष्ट नहीं है।Django जावास्क्रिप्ट अनुवाद काम नहीं कर रहा

django-admin.py makemessages -d djangojs -l fr 

root_folder/locale/fr/LC_MESSAGES अब शामिल django.po & djangojs.po और alert(gettext('this is to be translated')); में:

  1. मैं अपने urls.py

    urlpatterns = patterns('', 
        (r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'), 
    ) 
    
  2. जेनरेट किए गए इस आदेश का उपयोग लैंग फ़ाइलों को यह जोड़ा मेरी जेएस फाइलों में से एक वा djangojs.po में उठाया गया है।

    1. मैं django-admin.py compilemessages चला गया और सर्वर को पुनरारंभ किया।

    2. जोड़ा गया यह मेरा base.html रहे हैं:

      <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" ></script> 
      

    ध्यान दें कि मैं 'स्थान' जोड़ा पैकेज का नाम गुजर नहीं जब गतिशील अनुवाद लोड हो रहा है के अपवाद से बचने के लिए।

    1. अपने ब्राउज़र से /jsi18n/locale/ देखा गया और सभी मैं Django अनुवाद कार्यों है:

      /* gettext library */ 
      
      var catalog = new Array(); 
      
      function pluralidx(count) { return (count == 1) ? 0 : 1; } 
      
      
      function gettext(msgid) { 
      .... 
      

    क्यों 'इस अनुवाद किया जाना है' नहीं दिखा रहा है और जो आधार पर यह एक दिखाएगा यूआरएल के साथ गुजरने के बिना विशिष्ट भाषा?

उत्तर

10

मैं बिल्कुल पता नहीं कैसे अपनी समस्या को हल करने के लिए है, लेकिन मैं आपको बता सकता, कैसे चीजें मेरे लिए काम:

locale फ़ोल्डर मेरी tickets एप्लिकेशन के अंदर है।

urls.py

js_info_dict = { 
    'domain': 'djangojs', 
    'packages': ('tickets',), 
} 

urlpatterns = patterns('', 
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 
    ... 

base.html

<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script> 

और संदेश फ़ाइल बनाने के लिए:

python -m django-admin makemessages -d djangojs -l fr 
python -m django-admin compilemessages 

उम्मीद है कि आप इस से कुछ चुन सकते हैं।

4

मेरे विशेष मामले वाले अन्य लोगों के लिए, जेएस संदेश उत्पन्न होते हैं और ठीक संकलित होते हैं लेकिन जब आप i18n भाषा urls का उपयोग करते हैं तो टेम्पलेट या पृष्ठों में प्रस्तुत नहीं किया जाता है।

ऐसा इसलिए है क्योंकि जावास्क्रिप्ट कैटलॉग i18n urls पैटर्न में जोड़ा जाना चाहिए, सामान्य पैटर्न के लिए नहीं।

urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),) 

=>

urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),) 
+0

आप वास्तव में धन्यवाद, मैं इस पर कई घंटे बिताए। मैंने उन दस्तावेज़ों को सही करने के लिए एक प्रासंगिक [टिकट] (https://code.djangoproject.com/ticket/25751) खोला है - मेरी आंखों में- कार्यात्मक नहीं हैं। – raratiru

+0

किसी के लिए इस पर ठोकर खाने के लिए: उपर्युक्त टिकट https://code.djangoproject.com/ticket/25751 में टिप्पणियों को पढ़ने के बारे में मैं समझता हूं, ऐसा लगता है कि आपका _root_ url 'i18n_patterns' का उपयोग कर रहा है (क्या कोई पुष्टि कर सकता है - या दुर्बल - यह?) –

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