Django JavaScript翻译不起作用

Ada*_*ver 8 python django translation gettext

我试图按照指南进行操作,但还不够清楚.

  1. 我把它添加到我的urls.py中

    urlpatterns = patterns('',
        (r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用以下命令生成lang文件:

    django-admin.py makemessages -d djangojs -l fr
    
    Run Code Online (Sandbox Code Playgroud)

root_folder/locale/fr/LC_MESSAGES现在包含django.podjangojs.poalert(gettext('this is to be translated'));在我的js文件之一是在回升djangojs.po.

  1. 我跑了django-admin.py compilemessages并重新启动了服务器.

  2. 将此添加到我的base.html:

    <script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我添加了"locale"以避免在动态加载翻译时未传递包名称的例外.

  1. /jsi18n/locale/从我的浏览器访问,我得到的是Django翻译功能:

    /* gettext library */
    
    var catalog = new Array();
    
    function pluralidx(count) { return (count == 1) ? 0 : 1; }
    
    
    function gettext(msgid) {
    ....
    
    Run Code Online (Sandbox Code Playgroud)

为什么'这是要被翻译'没有显示,在哪个基础上它将显示一个特定的语言而不传递它的URL?

mar*_*dev 12

我不知道如何解决你的问题,但我可以告诉你,事情对我有用:

locale文件夹在我的tickets应用程序内.

urls.py

js_info_dict = {
    'domain': 'djangojs',
    'packages': ('tickets',),
}

urlpatterns = patterns('',
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
    ...
Run Code Online (Sandbox Code Playgroud)

base.html文件

<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
Run Code Online (Sandbox Code Playgroud)

并创建消息文件:

python -m django-admin makemessages -d djangojs -l fr
python -m django-admin compilemessages
Run Code Online (Sandbox Code Playgroud)

希望你能从中汲取一些东西.


mig*_*lfg 6

对于其他有我特殊情况的人,当您使用 i18n 语言 url 时,js 消息会生成并编译正常,但不会在模板或页面中呈现。

这是因为 javascript 目录应该添加到 i18n urls 模式,而不是普通模式。

urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
Run Code Online (Sandbox Code Playgroud)

=>

urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
Run Code Online (Sandbox Code Playgroud)