Django JavaScript翻译空目录(i18n/jsi18n)
我的jsi18n JavaScript中总是有一个空目录。我已经尝试了StackOverflow上的所有解决方案,包括,但目录仍然是空的 我的设置如下:Django JavaScript翻译空目录(i18n/jsi18n),javascript,django,Javascript,Django,我的jsi18n JavaScript中总是有一个空目录。我已经尝试了StackOverflow上的所有解决方案,包括,但目录仍然是空的 我的设置如下: project_dir - locale - nl (contains LC_MESSAGES with django.po and djangojs.po) - app1 - app2 - main_app - settings.py - urls.py - wsgi.py 在settings.py中,我有 # Where
project_dir
- locale
- nl (contains LC_MESSAGES with django.po and djangojs.po)
- app1
- app2
- main_app
- settings.py
- urls.py
- wsgi.py
在settings.py中,我有
# Where to find locale
LOCALE_PATHS = (
os.path.join(SITE_ROOT, 'locale'),
)
SITE_ROOT是指向我的project dir的绝对路径,因此可以转换为
在url.py中,我有
# i18n
js_info_dict = {
'domain': 'djangojs',
'packages': ('wrnpro', ),
}
及
作为我的URL的一部分
如果我运行应用程序并调用http://localhost:8000/jsi18n/
我明白了
/* gettext library */
var catalog = new Array();
function pluralidx(count) { return (count == 1) ? 0 : 1; }
…
到目前为止,我已经尝试了各种各样的设置,但目录仍然是空的
运行makemessages
和compilemessages
时,会找到并翻译我的JavaScript get文本字符串。django.po和.mo文件位于区域设置目录中
有人吗?对于您当前用户的语言,您是否有任何已完成的翻译,还是只有存根?目录将只包含实际已翻译的字符串的值 即,如果您的英文po文件中有此内容:
#: static/js/events.js:159
msgid "Open side panel"
msgstr ""
目录中不会出现任何内容(如果您使用的是英语)。但如果你有这个:
#: static/js/events.js:159
msgid "Open side panel"
msgstr "Open side panel"
然后会出现。我也遇到了同样的问题,当我将我的区域设置目录从项目文件夹移动到应用文件夹时,它起了作用,因此makemessages似乎需要在应用级别上运行。我认为您的设置文件中不需要
LOCALE\u路径。这就是我的工作:
js_info_dict = {
'domain': 'django',
'packages': None,
}
urlpatterns = [
url(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript-catalog'),
# ...
]
还是不工作?故障排除提示:
我不知道为什么会这样,但我可以告诉你我是如何发现如何让它工作的。如果您使用相同的故障排除技术,也许您也会找到一种方法。我使用了Python调试器,如下所示:
def javascript_catalog_pdb(*args, **kwargs):
import pdb
pdb.set_trace()
return javascript_catalog(*args, **kwargs)
url_patterns = [
url(r'^jsi18n/$', javascript_catalog_pdb, js_info_dict, name='javascript-catalog'),
...
]
然后使用PDB,我进入了javascript\u目录
,直到我到了那一行:
catalog, plural = get_javascript_catalog(locale, domain, packages)
然后,我在调试器中尝试了域
和包
的不同值,直到我发现了我需要的值。我对django和djanojs目录都有100%的翻译,我从英语(en)翻译为荷兰语(nl)。这些建议似乎都不起作用。我让它单独呆了一个星期左右,对几乎所有的东西都安装了几个更新,当我在一个周五早上坐下来最终解决这个问题时,它已经自行修复了。我目瞪口呆地看到JavaScript翻译现在正在工作,而且从那时起就一直在工作。我不知道是什么触发了这一切。我的区域设置目录仍在项目级别。
catalog, plural = get_javascript_catalog(locale, domain, packages)