【发布时间】:2018-10-30 10:38:34
【问题描述】:
我正在使用 Wagtail 和 Django,我正在尝试翻译 html 模板和 js 文件中的内容。
html 模板中的内容已正确添加到.po 文件中,但根本没有添加来自 js 文件的字符串。
我的项目结构如下:
webDealers文件夹内的urls.py文件如下:
urlpatterns = [
url(r'^django-admin/', admin.site.urls),
url(r'^admin/', include(wagtailadmin_urls)),
url(r'^documents/', include(wagtaildocs_urls)),
url(r'^search/$', search_views.search, name='search'),
url(r'^api/', include('API.urls')),
url(r'^i18n/', include('django.conf.urls.i18n'), name='set_language'),
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
url(r'', include(wagtail_urls)),
]
settings.py如下:
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)
LANGUAGE_CODE = 'en'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = [('en', 'English'), ('fr', 'French'), ('nl', 'Dutch')]
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
所有.js 文件都在webDealers 文件夹内的静态文件夹中。
我已将<script src="{% url 'javascript-catalog' %}"></script> 添加到<head> 标记,并在需要翻译字符串的.js 文件中添加gettext("String to translate")。
但是当我在 locale 文件夹中运行 django-admin makemessages -l en 时,我只能从 html 文件而不是 js 文件中获得翻译。
我正在使用 Django==2.1.2
关于如何翻译 js 文件中的字符串有什么建议吗?
更新
当我跑步时
django-admin makemessages -d django -l nl
它从 html 文件中获取所有字符串,并将它们放在 root 文件夹 (root/locale) 的 locale 文件夹中。
但是当我这样做时
django-admin makemessages -d djangojs -l nl
它获取所有 .js 字符串并将它们放在 root/webDealers/locale 的语言环境文件夹中。
我想把所有的翻译都放在一个地方
【问题讨论】: