Una de las cosas que nos ofrece Django es vistas genéricas y soporte para localización (aka i10n) e internacionalización (aka i18n). Entonces una vez tenemos nuestro sitio con i18n o i10n pues lo que sigue es que le demos a nuestros usuarios la manera de escoger su idioma, Django tiene un algoritmo par esto, sin embargo en algún punto nuestros usuarios querrán poder escoger su idioma preferido, para esto este framework nos da la opcion de una vista generica, sobre la cual encontraréis información en http://docs.djangoproject.com/en/dev/topics/i18n/#the-set-language-redirect-view.
Lo único es que esta vista espera que haya un formulario para que el usuario escoja su idioma y además que tengamos predefinida una página a la cual el usuario será redirigido después de seleccionar el idioma a lo cual le veo particularmente un inconveniente, pues si el usuario ha llegado a un punto importante para él y es llevado a la página inicial no le agradará (en mi caso me molestaría). Además, ¿y si queremos tener la posibilidad de hacerlo desde una url y no una variable por post?
Para resolver este conflicto se modifica un poco la vista que nos trae Django y la dejamos así:
def set_lang(request,lang):
response = HttpResponseRedirect(request.META['HTTP_REFERER'])
lang_code = u'%s' % lang
if lang_code and check_for_language(lang_code):
if hasattr(request, 'session'):
request.session['django_language'] = lang_code
else:
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
return response
Esta vista espera que se escoja el idioma por una url y además redireccionará al usuario a la página en la que se encontraba, podemos hacerlo incluso en el urls.py y finalmente escogemos la url:
urlpatterns = patterns('',
...
(r'^set_lang/(?P<lang>\w{2})/$',set_lang),
...
)
De esta manera si se va a /set_lang/es/ Django cargará todo nuestro sitio en español y volvera a la vista en la que lo hayamos hecho.
Publicado por Diego Andrés el Viernes 20 d Marzo d 2009 | 3 comentarios | Categorías: internacionalización, snippets, traducciones, trucos
Ayer terminó el sprint de traducción. En estos tres días que ha durado hemos traducido al español 22 archivos de la documentación de Django y aún hay otros archivos en proceso de traducción. Dar las gracias a las personas que han participado, especialmente a Macarse, Percy Perez, Dalues, Joel Davila y Jose Alonso Peñarrieta. Hemos traducido una buena parte de la documentación de Django pero aún quedan otros archivos por traducir para todo el que se anime a continuar :)
Recordar a todo el que quiera colaborar con la traducción que tiene los pasos a seguir en el post Traducir la documentación de Django al español.
Publicado por Antonio Melé el Lunes 12 d Enero d 2009 | 5 comentarios | Categorías: comunidad, sprint, traducciones
¡Ya es día 9 de Enero! Comienza el sprint de traducción on-line de la documentación oficial de Django.
Podéis seguir todos los pasos para traducir en este post. Recordad que para cualquier problema que surja estamos disponibles en la lista de correo y también a través del formulario de contacto. ¡A sprintar!
Publicado por Antonio Melé el Viernes 9 d Enero d 2009 | 1 comentario | Categorías: comunidad, sprint, traducciones
Ya sólo quedan 3 días para que comience el sprint de traducción on-line de la documentación de Django al español. Para que no haya confusiones sobre cómo participar en él os dejamos una breve guia a continuación.
Estos son los pasos para traducir cualquier documento:
Regístrate en el trac desde aquí
Decide qué documento quieres traducir a partir de todos los que hay aquí (documentación oficial de Django)
Comprueba que el documento elegido no se encuentre asignado a nadie ni esté ya traducido, eso significa que el documento no debe aparecer en esta lista
Abre un ticket desde esta página indicando en Short summary: la ruta del documento dentro de la documentación y el número de revisón (por ejemplo: contents.txt rev.8506 ó howto/index.txt rev.8506). Escribe tu nombre de usuario en Assign to: para que los demás traductores sepamos que la traducción de ese documento queda asiganada a ti. Puedes adjuntar el documento original al ticket si lo deseas.
Traduce el documento y aseguráte de que utilizas el encoding UTF-8 en tu editor de textos (en vim: set encoding=utf-8)
Haz un checkout del repositorio cambiando <USER> por tu nombre de usuario:
svn co --username <USER> http://202.dwp.wuonm.com/svn/6/ django-es
Añade el documento traducido en el path correspondiente:
cd django-es/trunk/docs cp /path/al/documento/documento-traducido.txt . svn add documento-traducido.txt svn ci
Cierra el ticket cambiando su estado a closed
¿Aún tienes dudas? Ante cualquier duda o problema que pueda surgirte estaremos encantados de poder ayudarte. Escríbenos desde el formulario de contacto o bien deja un mensaje en el grupo de correo detallando tu duda o problema.
Nota: realiza un svn update antes de cada sesión de traducción y vuelve a hacer un commit cuando dejes de traducirlo.
Al final del sprint escribiremos un post en agradecimiento a todos los que han participado y enlazando con sus sitios web. Podéis enviarnos el enlace a vuestro sitio web desde la página de contacto.
Publicado por Antonio Melé el Martes 6 d Enero d 2009 | 1 comentario | Categorías: comunidad, sprint, traducciones
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas