Pertanyaan File katalog terjemahan javascript Django gagal memuat, menunjukkan kesalahan - ReferenceError: gettext tidak didefinisikan


Seperti disebutkan dalam dokumentasi, saya telah mengikuti langkah-langkah di bawah ini -

  1. Di settings.py saya

    LOCALE_PATHS = (
      os.path.join(BASE_DIR, 'locale'),
    )
    
    LANGUAGE_CODE = 'en-us'
    
    USE_I18N = True
    
    USE_L10N = True
    
    ugettext = lambda s: s
    
    LANGUAGES = (
     ('en', ugettext('English')),
     ('mar', ugettext('Marathi')),
    )
    
  2. Direktori lokal saya ada di folder root proyek Django saya

  3. Di urls.py

    from django.views.i18n import javascript_catalog
    
    js_info_dict = {
      'packages': ('phone',),
    }  
    
    urlpatterns = [
        url(r'^phone/', include('phone.urls')),
        url(r'^jsi18n/$', javascript_catalog, js_info_dict),
    ]   
    
  4. Di base.html

    <script type="text/javascript" src="/jsi18n/"></script>
    

Saya dapat melihat terjemahan yang dilakukan oleh trans tag, tetapi ketika m mencoba untuk menerjemahkan variabel dalam javascript menggunakan metode gettext m mendapatkan kesalahan khusus ini

ReferenceError: gettext tidak didefinisikan

FYI - file djangojs.po dan djangojs.mo ada di direktori lokal saya dan saya telah mengumpulkan file setelah menerjemahkannya.

Saya berusaha keras di google tetapi masih kesalahan yang sama.


4
2018-01-21 10:17


asal


Jawaban:


Setelah berusaha keras selama seminggu, saya mendapat solusi untuk masalah saya, yang agak aneh bagi saya

saya harus mengatur ulang url saya di urls.py seperti yang ditunjukkan di bawah ini

urlpatterns = [
 url(r'^jsi18n/$', javascript_catalog, js_info_dict),
 url(r'^phone/', include('phone.urls')),
] 

segera setelah saya membuat di atas mengubah file katalog JS saya dimuat dan terjemahan dalam file js mulai bekerja.

saya tidak mengerti persis penyebabnya, tetapi ingin berbagi .. semoga bermanfaat ..


3
2018-01-27 09:50