Ok He estado buscando como loco por este problema, creo que es simple.Plantilla de traducción de django {% trans "something"%}
que utilizan Django 1.4
El problema es que Django no se traducirán un simple {% trans "trabajo" %} en mi plantilla.
Esto es lo que he hecho:
Settings.py:
LANGUAGE_CODE = 'en-us'
USE_I18N = True
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.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.request",
)
LOCALE_PATHS = (
'/home/m00p/PycharmProjects/astrid/locale'
)
esta es mi estructura del mapa:
/
myproject/
apps/
locale/
template/
Así que Runned
django- admin.py makemessages -l nl -i settings.py
y lo hizo con éxito crea en la carpeta local nl/LC_MESSAGES/django.po, que luego editar la traducción se encuentra en el django.po
#: templates/base.html:22
msgid "work"
msgstr "ddddddddddddd"
I A continuación, ejecute el comando de compilación
compilemessages django-admin.py
y también crea un archivo con éxito django.mo en el pliegue correcto er
he añadido esto también en el miproyecto/urls.py
urlpatterns = patterns('',
url(r'^i18n/', include('django.conf.urls.i18n')),
)
urlpatterns += i18n_patterns('',
url(r'^$', 'front.views.home', name='home'),
)
he añadido esto en el archivo base.html para poder cambiar el idioma
<form action="/i18n/setlang/" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="/" />
<select name="language">
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
{% endfor %}
</select>
<input type="submit" value="Go" />
</form>
Así que cuando voy en el sitio web obtengo 127.0.0.1:8000/en/ en la url, esto es correcto porque englisch es el idioma predeterminado, cuando luego lo cambio con el formulario a NL, redirige a 127.0.0.1:8000/nl/ pero el texto que traduje no cambió. También estoy seguro de que el idioma es NL porque cuando muestro {{LANGUAGE_CODE}} dice NL.
¿Alguien sabe por qué no cambia?
Gracias m00p
problema resuelto
Durante el proceso cuando estaba añadiendo cosas que me olvidé de que funcione, he reiniciado mi servidor de implementación, pero no borran la memoria caché de mi El navegador todavía usaba las páginas anteriores, por lo que cuando borré los datos de mi navegador en Chrome revisé la página y cambié el idioma que tradujo correctamente. Gracias por las sugerencias de todos modos!
también estoy usando este concepto de lenguaje múltiple e hice exactamente lo que has hecho, pero en mi archivo django.po no contiene mis líneas de archivo de plantillas que puedo editar, p. como su archivo .po contiene '#: templates/base.html: 22 msgid" work "' .... PERO en lugar de eso contiene todos los archivos ** dentro de site-packages/django ** (i.ie, parte de administrador) No quiero editar estos archivos de administrador pero edito para ver si la traducción del clima funciona o no, pero tampoco funciona para esta parte de administrador ............... ....así que mi problema principal es cómo mostrar los datos de mi plantilla que puedo editar – Inforian
Ya he especificado '{% load i18n%} {% trans" Hello "%}' dentro de mi plantilla para que el archivo .po lo seleccione y puedo agregar datos traducidos en el archivo .po ............ pero aun así no selecciona estas plantillas dentro del archivo .po ..... ??? – Inforian