Django javascript translation catalog file is failing to load, showing error - ReferenceError: gettext is not defined
Django javascript translation catalog file is failing to load, showing error - ReferenceError: gettext is not defined
如文档中所述,我已执行以下步骤 -
在我的settings.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')),
)
我的语言环境目录在我的 Django 项目的根文件夹中
在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),
]
在base.html
<script type="text/javascript" src="/jsi18n/"></script>
我能够看到由 trans 标签完成的翻译,但是当我尝试使用 gettext 方法翻译 javascript 中的变量时,我得到了这个特定的错误
ReferenceError: gettext is not defined
仅供参考 - djangojs.po 和 djangojs.mo 文件在我的语言环境目录中,我在翻译后编译了文件。
我在 google 上努力尝试,但仍然是同样的错误。
经过一个多星期的努力,我找到了问题的解决方案,这对我来说有点奇怪
我不得不 re-arrange 我的 url 在 urls.py 如下所示
urlpatterns = [
url(r'^jsi18n/$', javascript_catalog, js_info_dict),
url(r'^phone/', include('phone.urls')),
]
我一做出上述更改,我的 JS 目录文件就加载了,并且 js 文件中的翻译开始工作。
我没有完全理解原因,但想分享..可能有用..
如文档中所述,我已执行以下步骤 -
在我的settings.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')), )
我的语言环境目录在我的 Django 项目的根文件夹中
在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), ]
在base.html
<script type="text/javascript" src="/jsi18n/"></script>
我能够看到由 trans 标签完成的翻译,但是当我尝试使用 gettext 方法翻译 javascript 中的变量时,我得到了这个特定的错误
ReferenceError: gettext is not defined
仅供参考 - djangojs.po 和 djangojs.mo 文件在我的语言环境目录中,我在翻译后编译了文件。
我在 google 上努力尝试,但仍然是同样的错误。
经过一个多星期的努力,我找到了问题的解决方案,这对我来说有点奇怪
我不得不 re-arrange 我的 url 在 urls.py 如下所示
urlpatterns = [
url(r'^jsi18n/$', javascript_catalog, js_info_dict),
url(r'^phone/', include('phone.urls')),
]
我一做出上述更改,我的 JS 目录文件就加载了,并且 js 文件中的翻译开始工作。
我没有完全理解原因,但想分享..可能有用..