Django中静态JS的国际化

Internationalization of static JS in Django

我想翻译Django中的一部分JS。

我试过命令 python manage.py makemessages -d djangojs 但它只在 settings.py

中获取 TEMPLATE_DIRS 中的文件

我试过在模板目录下设置一个JS,效果很好。

我有 djangojs.po,我可以在编译时生成 .mo。

所以问题是:如何在静态文件中制作消息?

我发现了同样的问题 HereHere但没有人回答谁保持良好的架构。

求求你救救我!

我的架构:

PS:对不起我的英语,我不是母语;)

我的错误是当我在 settings.py 中设置 STATIC_ROOT 时。事实上,当它在服务器上执行 CollectStatic 时,这个变量在 Django 中说 where stock Static,我用她说在哪里找到了我的静态(Django 可以找到所有静态 whitout 信息,它在项目文件夹或上的静态文件夹中找到静态应用程序文件夹)

最后:

在prourls.py中设置这个

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('app.kanboard',),
}

urlpatterns = patterns('',

    [...]

    #Internationalization Javascript
    url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),

)

在模板中

<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' %}"></script>

在JS中static/my_app/my_file.js

document.write(gettext('Ma chaine de caractère a traduire'))

之后,我们统治这个命令行

python manage.py makemessages -d djangojs

这里,djangojs是urls.py开头设置的域(伪约定)

这时候我们在locale文件夹里面有一个djangojs.po我们可以编译成标准的.po.

Link 文档:Here

在我的票中,您可以在其中找到示例项目和英文说明:The ticket

祝你好运!