Я использую Wagtail и Django и пытаюсь перевести контент в html
шаблоны и js
файлы.
Содержимое в шаблонах html
правильно добавляется в файлы .po
, но строки из файлов js вообще не добавляются.
Структура моего проекта следующая:
Файл 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-файлы?
UPDATE
Когда я бегу
django-admin makemessages -d django -l nl
получает все строки из html-файлов и помещает их в папку локали в папке root (root/locale
).
Но когда я делаю
django-admin makemessages -d djangojs -l nl
получает все строки .js и помещает их в папку локали в root/webDealers/locale
.
Я хочу, чтобы все переводы были в одном месте