[英]django makemessages does nothing
When I run django-admin makemessages -l en
nothing happens and no po
files are created.当我运行
django-admin makemessages -l en
时,什么也没有发生,也没有创建po
文件。 It only says processing locale en
它只说
processing locale en
This is my folder structure这是我的文件夹结构
/myproject
myapp/
locale/
media/
static/
templates/
db.sqlite
manage.py
settings.py
urls.py
wsgi.py
settings.py设置.py
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django_user_agents.middleware.UserAgentMiddleware',
]
ROOT_URLCONF = 'urls'
WSGI_APPLICATION = 'wsgi.application'
LANGUAGE_CODE = 'fr'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
I realized that makemessages
does not create po
files if translations are not referenced in any of the templates我意识到如果在任何模板中都没有引用翻译,
makemessages
不会创建po
文件
I was expecting makemessages
to create an empty po
file that can I continue editing, but it does not work that way.我期待
makemessages
创建一个空的po
文件,我可以继续编辑,但它不能那样工作。 At least one of the templates must have translations for the file to be created at the first time.至少有一个模板必须具有第一次创建文件的翻译。
{% load i18n %}
....
{% trans 'Welcome' %}
python manage.py makemessages -l en
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-11-08 18:58+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\templates\index.html:4
msgid "Welcome"
msgstr ""
I hope this will be useful to anyone encountering the same issue我希望这对遇到相同问题的任何人都有用
You should probably add your app as 'myapp.apps.MyappConfig' instead of just 'myapp' in your settings.py INSTALLED_APPS and also include your app in LOCALE_PATHS您可能应该在 settings.py INSTALLED_APPS 中将您的应用程序添加为“myapp.apps.MyappConfig”而不仅仅是“myapp”,并将您的应用程序包含在 LOCALE_PATHS 中
LOCALE_PATHS = (
os.path.join(BASE_DIR, "locale"),
os.path.join(BASE_DIR, "yourapp/locale"),
) )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.