Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何翻译Django和Wagtail中的.js文件_Python_Django_Wagtail - Fatal编程技术网

Python 如何翻译Django和Wagtail中的.js文件

Python 如何翻译Django和Wagtail中的.js文件,python,django,wagtail,Python,Django,Wagtail,我正在使用Wagtail和Django,我正在尝试翻译html模板和js文件中的内容 html模板中的内容已正确添加到.po文件中,但js文件中的字符串根本没有添加 我的项目结构如下: urlpatterns = [ url(r'^django-admin/', admin.site.urls), url(r'^admin/', include(wagtailadmin_urls)), url(r'^documents/', include(wagtaildocs_ur

我正在使用Wagtail和Django,我正在尝试翻译
html
模板和
js
文件中的内容

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

我的项目结构如下:

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)),
]
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'),
)

webders
文件夹中的
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)),
]
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'),
)
settings.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)),
]
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文件夹中的静态文件夹中

我已经将
添加到
标记中,并且在需要翻译字符串的.js文件中添加了
gettext(“要翻译的字符串”)

但是,当我在
locale
文件夹中运行
django admin makemessages-l en
时,我只从html文件而不是js文件中获得翻译

我使用的是Django==2.1.2

有关于如何翻译js文件中的字符串的建议吗

更新

当我跑的时候

django admin生成消息-d django-l nl

它从html文件中获取所有字符串,并将它们放在root文件夹(
root/locale
)的locale文件夹中

但当我这么做的时候

django admin makemessages-d djangojs-l nl

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


我希望所有的翻译都放在一个地方

当调用
makemessages
时,您需要传递
--domain js
--extension js
以获取.js文件中的可翻译字符串。请参阅Django文档:


问题是,当我运行
django admin makemessages-d django-l nl
时,它从html文件中获取所有字符串并将它们放在根文件夹的locale文件夹中,但当我运行
django admin makemessages-d djangojs-l nl
时,它会获取所有.js字符串并将它们放在
root/WebDeders
的locale文件夹中。我想把所有的翻译放在一个地方