javascript - Django JavaScript 翻译空目录(i18n/jsi18n)

标签 javascript django

<分区>

我的 jsi18n JavaScript 中总是以空目录结束。我已经尝试了 StackOverflow 上的所有解决方案,包括 Empty catalog when internationalizing JavaScript code , 但目录仍然是空的。

我的设置是这样的:

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 是我的项目目录的绝对路径,所以这转化为

在 urls.py 我有

# i18n
js_info_dict = {
    'domain': 'djangojs',
    'packages': ('wrnpro', ),
}

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

作为我的网址的一部分。

如果我运行应用程序并调用 http://localhost:8000/jsi18n/ 我得到

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

到目前为止,我已经尝试了各种设置等。我能找到,但目录仍然是空的。

当运行 make messagescompile messages 时,我的 JavaScript 获取文本字符串被找到并翻译。 django.po 和 .mo 文件位于语言环境目录中。

有人吗?

最佳答案

这就是最终为我工作的:

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_catalog,直到我到达以下行:

catalog, plural = get_javascript_catalog(locale, domain, packages)

然后,我在调试器中为 domainpackages 尝试了不同的值,直到发现我需要的值。

关于javascript - Django JavaScript 翻译空目录(i18n/jsi18n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267679/

相关文章:

javascript - 正则表达式查找字符串中的十进制数字

javascript - 如何在不使用 Select ID 的情况下创建基于下拉选择的 jQuery URL 重定向?

python - 如何升级django?

django - 如何为邮政地址建模

python - 如何从其他信号发送django信号

javascript - 如何选择在使用 puppeteer 和 mocha 单击后显示的元素(如弹出框)?

javascript - Faker.js 两个值之间的随机数

javascript - 如果不直接使用,导出的 TypeScript 类不会包含在 WebPack 包中

django - 与 django 模型相关的问题

python - Django DetailView 动态模型