Django中静态JS的国际化

我想在Django中翻译JS的一部分.

我已经尝试了命令python manage.py makemessages -d djangojs但它只接受settings.py中TEMPLATE_DIRS中的文件

我尝试在模板目录中设置JS,它完美地工作.

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

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

我发现了同样的问题
Here

Here但没有人回答谁保持良好的建筑.

拜托,救救我!

我的架构:

> myapp

>语言环境
>静态

> myapp

> js

> try.js

>模板

> myapp

> try.html

> views.py
> urls.py
> […]

PS:对不起我的英语,我不是本地人;)

最佳答案 我的错误是当我在settings.py中设置STATIC_ROOT时.事实上,这个变量在Django上说当它在服务器上运行CollectStatic时库存静态,我用她说发现我的静态(Django可以找到所有静态whitout信息,它在项目文件夹上的静态文件夹上找到静态或者app文件夹)

最后:

在专业人士的urls.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>

在静态/ my_app / my_file.js中的JS中

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

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

python manage.py makemessages -d djangojs

这里,djangojs是在开头的urls.py中设置的域(它是一个伪约定)

这时,我们在文件夹区域设置中有一个djangojs.po,我们可以编译为标准.po.

doc:Here的链接

Lik of my ticket,你可以找到一个示例项目并用英语解释:The ticket

祝好运 !

点赞