Django javascript翻译目录文件无法加载,显示错误 - ReferenceError:未定义gettext

时间:2016-01-21 10:17:13

标签: python django django-i18n

如文档中所述,我已按照以下步骤进行操作 -

  1. 在我的settings.py

    0
  2. 我的语言环境目录位于我的Django项目的根文件夹中

  3. 在urls.py中

    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')),
    )
    
  4. 在base.html中

    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),
    ]   
    
  5. 我能够通过trans标签看到翻译,但是当我尝试使用gettext方法在javascript中翻译变量时m得到这个特定的错误

      

    ReferenceError:未定义gettext

    仅供参考 - djangojs.po和djangojs.mo文件在我的语言环境目录中,并且我在翻译后编译了文件。

    我在谷歌上努力但仍然出现同样的错误。

1 个答案:

答案 0 :(得分:4)

经过一周的努力,我得到了解决问题的方法,这对我来说有点奇怪

我必须在urls.py中重新安排我的网址,如下所示

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

我上面做了更改后,我的JS目录文件被加载,js文件中的翻译开始工作。

我完全不了解原因,但想分享..可能有用..