如何通过 Javascript 访问 Django 翻译?

问题描述 投票:0回答:1

如何使所有 Django 应用程序

locale/<lang>/django.po
翻译可从 Javascript 访问,以便您可以动态翻译 Javascript 小部件中的文本?

根据 这些文档,您需要将 URL 模式添加到您的

urls.py
,例如:

urlpatterns += i18n_patterns(
    path("jsi18n/", JavaScriptCatalog.as_view(packages=['myapp1', 'myapp2', ....]), name="javascript-catalog"),

然后在基本模板的

<head>
中添加包含:

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

我已经完成了此操作,并且我的项目中的每个应用程序都有日语

locale/ja/django.po
(及其编译的 .mo)文件。

但是,当我访问由

{% url 'admin:jsi18n' %}
(
/admin/jsi18n/
) 和
{% url 'javascript-catalog' %}
(
/ja/jsi18n/
) 生成的 URL 时,它不包含任何我的自定义翻译。

这是为什么呢?我错过了文档中的哪一步,导致我的翻译无法在 Javascript 目录中访问?

javascript django django-i18n
1个回答
0
投票

事实证明 Django 使用不同的默认域来进行服务器端翻译(“django”)和客户端翻译(“djangojs”)。

为了解决这个问题,我必须明确让 JavascriptCatalog 使用与服务器端相同的域。例如

JavaScriptCatalog.as_view(domain='django', packages=[...])
© www.soinside.com 2019 - 2024. All rights reserved.