Soy nuevo en Django y ahora estoy practicando la internacionalización de Django, con la intención de mostrar mis páginas web en chino, sin embargo:
Independientemente de los cambios que hice en el archivo django.po , y usé mensajes de compilemesseages para generar el archivo .mo , las páginas aún devolvieron las traducciones anteriores, incluso si eliminé el archivo .po para generar uno nuevo. ¿Me he perdido algo? Si es así, por favor dígame, gracias :)
Esta es mi configuración:
LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True LANGUAGES = ( ('en', ('English')), ('zh_CN', ('中文简体')), ('zh-hant', ('中文繁體')), ) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) también agregué 'django.middleware.locale.LocaleMiddleware' en settings.py , así:
MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', ) lo que estaba probando es esta función en views.py :
def test1_view(request): n = 2 weekdays = [_('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday'), _('Sunday')] return HttpResponse(weekdays[n]) el archivo django.po generado en /locale/zh_CN/LC_MESSAGES/django.po, y estoy seguro de haber eliminado el #,fuzzy :
#: testdeploy/views.py:64 msgid "Monday" msgstr "一" #: testdeploy/views.py:64 msgid "Tuesday" msgstr "二" #: testdeploy/views.py:64 msgid "Wednesday" msgstr "三" #: testdeploy/views.py:64 msgid "Thursday" msgstr "四" #: testdeploy/views.py:64 msgid "Friday" msgstr "五" #: testdeploy/views.py:64 msgid "Saturday" msgstr "六" #: testdeploy/views.py:65 msgid "Sunday" msgstr "七" luego usé los $ python manage.py compilemessages y el archivo .mo generado, pero cuando reinicié el servidor, la página seguía siendo la misma que la primera vez que modifiqué el archivo .po : solo mostraba "星期三" en lugar de "三".
Estoy realmente confundido acerca de esto, ¿hay algunas cookies que debería vaciar para asegurarme de que los cambios funcionen? NENE
PD: Mi versión de django es 1.8.8
Después de casi 3 días, finalmente resolví este problema escribiendo correos electrónicos para pedir ayuda. En realidad, este problema parecía ser causado por algunas configuraciones de idiomas específicas, como el chino: cambié mi settings.py :
LANGUAGES = ( ('en', ('English')), ('zh-CN', ('中文简体')), ('zh-TW', ('中文繁體')), )que usaba '-' en lugar de '_', sin embargo todavía se usa
$ python manage.py makemessages -l zh_CNpara generar django.po (donde el '_' seguía siendo el mismo).
@Emin Mastizada, gracias de todos modos :)