Py学习  »  Django

如何翻译django和wagtail中的.js文件

Boky • 4 年前 • 550 次点击  

我用的是Wagtail和Django,我想把内容翻译成 html 模板和 js 文件夹。

内容 HTML 模板已正确添加到 .po 文件,但JS文件中的字符串根本没有添加。

我的项目结构如下:

enter image description here

这个 urls.py 文件在里面 webDealers 文件夹如下:

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> 标签和我添加的 gettext("String to translate") 在需要转换字符串的.js文件中。

但当我跑步时 django-admin makemessages -l en 里面 locale 文件夹我只从HTML文件而不是JS文件中获得翻译。

我用的是 Django==2.1.2

对于如何在JS文件中转换字符串有什么建议吗?

更新

当我跑步时

django-admin makemessages -d django -l nl

它从HTML文件中获取所有字符串,并将它们放在区域设置文件夹中 文件夹( root/locale )

但当我这样做的时候

django-admin makemessages -d djangojs -l nl

它获取所有.js字符串,并将它们放在locale文件夹中 root/webDealers/locale

我想把所有的翻译放在一个地方

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38519
 
550 次点击  
文章 [ 1 ]  |  最新文章 4 年前
gasman
Reply   •   1 楼
gasman    5 年前

打电话时 makemessages ,你需要通过 --domain js --extension js 获取.js文件中的可翻译字符串。请参阅Django文档:

https://docs.djangoproject.com/en/2.1/ref/django-admin/#django-admin-makemessages https://docs.djangoproject.com/en/2.1/topics/i18n/translation/#message-files