【问题标题】:Django's support for translations in Javascript filesDjango 对 Javascript 文件翻译的支持
【发布时间】:2012-09-10 14:32:07
【问题描述】:

我阅读并按照here 中的说明进行操作,但似乎在 po 文件中的 javascript 中看不到字符串。

structure of my project is: 
cb/    
   cb_app    
   cb    
   static_files    
   templates

首先我将这些复制到我的 url.py 中:

js_info_dict = {
    'packages': ('cb_app',),
}

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

然后我将此脚本添加到我的 html 中:

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

我想要翻译的实际脚本就这么简单:

$(document).ready(function () { 
    $('#id_sales_item').chosen({no_results_text: gettext('No results match')}); 
});

...并在同一个html中使用。

那我还有什么需要做的吗?

然后我所做的就是从cb/cbcb/cb_app 运行下面的行。

django-admin.py makemessages -l en_GB

但在 cb/cb/localecb/cb_app/locale 中仍然没有“没有结果匹配”的迹象

有什么建议吗?

【问题讨论】:

    标签: javascript django internationalization


    【解决方案1】:

    我终于找到了问题。

    文档建议从 Django 项目和 Django 应用创建一次消息。这样你最终会得到两个 locale 目录。无论如何,这些都不会提取 javascript 翻译。这真是一团糟。

    我找到的最干净的解决方案是转到settings.py 并插入这一行(另请参阅我上面的项目层次结构):

    LOCALE_PATHS = ( '/home/kave/projects/cb/locale',)
    

    然后在project-root-directory中创建一个名为locale的目录(路径见上)

    不要忘记将条目也应用到 url.pyhtml(见上文)。

    终于把本地的都统一到一个地方了,进入项目根目录:/home/kave/projects/cb,运行这两条命令:

    django-admin.py makemessages -l en_GB
    django-admin.py makemessages -d djangojs -l en_GB
    

    第一个命令从项目和应用子文件夹中获取翻译文本。 第二个将 javascript 翻译成第二个 po 文件。

    就是这样。

    【讨论】:

    • 你是我的救星!很遗憾我在 django 文档中没有找到这个:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2017-09-06
    相关资源
    最近更新 更多