Javascript 文件中的 Django 翻译

2023-12-19

我跟着姜戈doc https://docs.djangoproject.com/pt-br/2.1/topics/i18n/translation/#using-the-javascript-translation-catalog内部化js文件,但它不起作用。这是我的设置:

设置.py:

LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'),)

根项目中的 urls.py:

from django.views.i18n import JavaScriptCatalog
from django.conf.urls.i18n import i18n_patterns

urlpatterns += i18n_patterns(
    path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)

在文件夹内运行以下命令,生成 .po 和 .mo 文件:

django-admin makemessages -l pt_BR

django-admin makemessages -d djangojs -l pt_BR

django-admin makemessages -a

django-admin compilemessages

django.po 文件:

msgid "Customer"
msgstr "Cliente"

在html模板中使用如下:

<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>

console.log( gettext('Customer') );

什么也没发生,文本继续以英文显示。有谁知道它会是什么?


好的,我想我已经解决了这个问题。由于某种原因(功能?),Django 将 JS 翻译编译为[project-folder]/locale并不是[your-app]/locale。因此,要使其正常工作,请复制djangojs.mo文件转至[your-app]/locale看看它是否适合你。为我做了这份工作。

我尝试过各种参数urls.py和其他地方,但我无法让 Django 在它所属的地方编译 trans 文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 文件中的 Django 翻译 的相关文章