Известная батарейка для авторизации через сторонние сервисы
django-allauth установлена через pip в виртуальное окружение проекта.
Не срабатывает перевод именно verbose_name приложения, в то время как для verbose_name моделей такой проблемы не наблюдается:
Версии Python и Django:
- v. Python: 3.5.2
- v. Django: 1.10.4
В исходниках приложения всё выглядит корректно:
/ProjectEnv/lib/python3.5/site-packages/allauth/socialaccount/apps.py
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _
class SocialAccountConfig(AppConfig):
name = 'allauth.socialaccount'
verbose_name = _('Social Accounts')
/ProjectEnv/lib/python3.5/site-packages/allauth/socialaccount/__init__.py
from . import app_settings
default_app_config = 'allauth.socialaccount.apps.SocialAccountConfig'
/ProjectEnv/lib/python3.5/site-packages/allauth/locale/ru/LC_MESSAGES/django.po
#: socialaccount/apps.py:8
#, fuzzy
msgid "Social Accounts"
msgstr "Социальные аккаунты"
Для верности,
выдержки из файла settings.py проекта, использующего django-allauth:
INSTALLED_APPS = [
...
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.vk',
...
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.i18n',
...
'django.template.context_processors.request',
],
},
},
]
LANGUAGE_CODE = 'ru-ru'
В качестве костыля, можно забить на интернационализацию и явно переопределять verbose_name приложений практически в любом файле проекта:
from allauth import socialaccount
socialaccount.apps.SocialAccountConfig.verbose_name = 'Социальные аккаунты'
Возможно
кто-нибудь сталкивался с избирательной работой утилиты ugettext_lazy в популярных сторонних приложениях
и нашёл более адекватное решение?