Файлы перевода Django не создаются в каталоге locale в определенном приложении
У меня нет проблем с запуском django-admin makemessages --all из базового каталога, и файлы .po генерируются внутри каталога locale в моем основном приложении, но у меня есть проблема с генерацией тех же файлов в моих конкретных приложениях.
Мой проект выглядит следующим образом
├── about_page ((but this one is not filled)
___ en
___ de
___ es
___ fr
├── accessories
├── callibrators
├── careers
├── contact_page
├── db.sqlite3
├── dimensional_measurement
├── leak_testing
├── locale
___ en (these files are filled with .po files)
___ de
___ fr
___ es
├── manage.py
├── mysite
├── newsnevents_page
├── polls
├── products_page
└── services
в моем файле settings.py есть
from django.utils.translation import gettext_lazy as _
LANGUAGES = [
('en', _('English')),
('de', _('German')),
('fr', _('French')),
('es', _('Spanish')),
]
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
os.path.join(BASE_DIR, 'about_page', 'locale'),
]
# Application definition
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'about_page.apps.AboutPageConfig',
'contact_page.apps.ContactConfig',
'products_page.apps.ProductsPageConfig',
'careers.apps.CareersConfig',
'newsnevents_page.apps.NewsneventsPageConfig',
'dimensional_measurement.apps.DimensionalMeasurementConfig',
'leak_testing.apps.LeakTestingConfig',
'callibrators.apps.CallibratorsConfig',
'services.apps.ServicesConfig',
'accessories.apps.AccessoriesConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_recaptcha',
'rosetta', #NEW
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'mysite.urls'
когда я выполняю это из базового каталога проекта
django-admin makemessages --all
Локаль в базовом каталоге заполнена, но каталог локали страницы about_page не заполнен файлами перевода. Здесь я приложил вид с сайта Rosetta.
Я столкнулся с той же проблемой, что и вы. Я решил ее, написав запросы на перевод шаблона в представлениях. В представлении вашего приложения:
output = _('Your text to translate')
Не забудьте добавить "output" в контекст.
Выполните команду makemessages -all Вы найдете искомое в локальном po вашего приложения. Скомпилируйте перевод и выполните команду compilemessage.
тогда в шаблоне
{{ output }}
или
{% trans "Your text to translate" %}