【问题标题】:Empty catalog when internationalizing JavaScript code国际化 JavaScript 代码时的空目录
【发布时间】:2010-07-27 20:32:14
【问题描述】:

我正在尝试设置Internationalization of JavaScript code in my Django application

我的 Django 应用程序有一个 locale 子目录,其中包含正确生成的 djangojs.po 文件。包定义如下:

# urls.py
js_info_dict = {
    'packages': ('my_project',),
} 

./manage.py makemessages 运行良好,因为 .po 文件包含所有要翻译的字符串,但网站上从未翻译过任何 JavaScript 字符串,并且目录始终为空。

【问题讨论】:

    标签: django internationalization django-i18n


    【解决方案1】:

    我也遇到了一些问题。这对我来说是这样的:

    将此添加到您的根 urls.py:

    js_info_dict = { 'domain': 'djangojs',
                     'packages': ('YOUR_PROJECT_NAME',), }
    
    
    urlpatterns = patterns('',                   
    
        #enable using translation strings in javascript
        #source: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#module-django.views.i18n
        (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
    
    )
    

    在 JS 文件中使用:

    var somevar = gettext('Text to translate');
    

    要编译 django 翻译文件:在 shell/终端中从项目根目录运行('apps'、'settings' 等在哪里):

    #for "normal django files" (.py, .html):
    django-admin.py makemessages --locale=de
    #for javascript files. source: http://stackoverflow.com/a/3571954/268125
    django-admin.py makemessages -a -d djangojs --locale=de
    #to compile the translation files to machine code
    django-admin.py compilemessages --locale=de
    

    【讨论】:

    • 仍然必须将我的项目添加到 INSTALLED_APPS。 (我不喜欢)
    • 它仍然对我不起作用。似乎“djangojs”是默认域。无需显式编写。
    【解决方案2】:

    我在 settings.py 中将 my_project 添加到 INSTALLED APPS 中,这似乎可以解决问题

    【讨论】:

    • 我已经在 settings.py 的 my_project 的 INSTALLED APPS 中有“my_project”,但目录仍然是空的。您可能知道还需要做什么吗?
    • 我发现了我的问题所在。我把我的 po 文件放在 /conf/locale 下,而它应该是 /locale .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2011-03-07
    • 2021-05-17
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多