После публикаций в stackoverflow и множества учебников по реализации интернационализации i18n в Django Admin я основал следующие шаги:
Командная строка Установить (в правом ENV)
Using PIP: pip install python-gettext (I tried this)
Using Conda: conda install gettext
settings.py
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware', #right place
'django.middleware.common.CommonMiddleware',
...
]
...'context_processors': [
...
'django.template.context_processors.i18n', # Indifferent place
...
]
...
TIME_ZONE = 'UTC' # America/Sao_Paulo
USE_I18N = True
USE_L10N = True
USE_TZ = True
ugettext = lambda s: s
LANGUAGES = (
( 'en-us', ugettext( 'English' )),
( 'pt-br', ugettext( 'Portuguese' )),
( 'es', ugettext( 'Spanish' )),
)
LANGUAGE_CODE = 'en-us' #default
...
SITE_ROOT = os.path.dirname( os.path.realpath( __file__ ) )
PROJECT_PATH = os.path.abspath( os.path.dirname( __name__ ) )
LOCALE_PATHS = ( os.path.join( SITE_ROOT, 'locale' ), ) # translation files will be created into 'locale' folder from root project folder
urls.py
admin.autodiscover()
urlpatterns = [
url( r'^favicon.ico$',
RedirectView.as_view( url = staticfiles_storage.url( 'images/favicon.png' ), ),
),
...
]
<b>urlpatterns += i18n_patterns</b>(
path( r'admin/',
admin.site.urls
),
...
)
urlpatterns += static(
settings.STATIC_URL, document_root = settings.STATIC_ROOT ) \
+ static(
settings.MEDIA_URL, document_root = settings.MEDIA_ROOT )
models.py (любой)
from django.core.validators import RegexValidator
from django.db import models
from django.utils.translation import ugettext as _
...
class BusinessType(models.Model):
businesstype_name = models.CharField(
verbose_name = _( 'Business Name' ),
help_text = _( 'Name, Field Type, Activity' ),
max_length = 32, )
Пользователи Windows (должны иметь)
Пользователям Windows необходимо загрузить два пакета из проекта gnome, чтобы встроить файлы перевода интернационализации i18n в нужную папку / каталог - поэтому загрузите их в правильную систему Windows 64/32 бит gettext-runtime- (последняя версия файла) _win64 или win32 и загрузите gettext-tools- (последняя версия файла) тоже , распакуйте все файлы в одну папку (gettext-tools внутри папки BIN) и добавьте Windows PATH переменная для распознавания этих файлов.
Пользователи MAC (необходимо проверить это)
Я прочитал много текстов с орфографическими ошибками, в которых говорится о случае / верблюжьем деле, в коде «language» учитывается регистр, поэтому будьте осторожны, если вы используете что-то вроде pt- Br :
LANGUAGES = (
( 'en-us', ugettext( 'English' )),
( 'pt-br', ugettext( 'Portuguese' )),
( 'es', ugettext( 'Spanish' )),
)
Создание файлов шаблонов (.po) (для написания переводов)
At terminal try this to built all specified languages in LANGUAGES and put "-v 3" to show how magic happening
python manage.py makemessages --all -v 3
Ничего не происходит (У кого-то такая же ошибка отсутствует)
Все эти шаги приводят к созданию папки 'locale', предположительно работающей 'python manage.py makemessages' и не содержащей ни одного, ничего не создавая, ничего не делая, даже ни одной ошибки. Я действительно потерян из-за этого, и после этого, как я могу получить текущий выбранный код языка для создания альтернативного кода невозможным переводам i18n, таким как:
PHONE REGEX rules, STATE list,...