|
Actualización: Tras haber investigado el error un poco, he llegado a la conclusión de que es un bug de python, y por lo tanto irresoluble hasta que se solucione en la version 2.7.3 Hola, Estoy realizando un calendario de eventos básico para django utilizando el módulo calendar de python, y debido a que mi aplicación es multilingue tiene que funcionar en varios idiomas. El problema que tengo es que a pesar de que el módulo calendar ofrece varias opciones de localización, ninguna funciona correctamente. He probado a través de LocaleHTMLCalendar y me da errores de codificación ASCII dentro del propio módulo de Python (todos los ficheros de mi programa están declarados como UTF-8) concretamente al traducir "Wed" por "Mié" (Miércoles)
También he probado a localizarlo a mano, a través de los arrays day_name, day_abbr, month_name y month_abbr pero el resultado es que el calendario se muestra sin texto. Alguna idea? Os dejo mi código aquí, está basado en el de Elvin Uggedal. Ahora mismo estoy utilizando LocaleHTMLCalendar con un pequeño rodeo para poder cargar el idioma del usuario y no el del sistema.
La vista:
|
|
Yo probaría con lo siguiente: En la línea 25 de la vista:
He realizado los cambios que mencionas, pero ahora en vez de dar error de codificación, da error de valores "Too many values to unpack" sin más explicación
(29 Jun '11, 09:39)
oscarcp
1
Tras deliberar e investigar, he descubierto que el módulo locale de python está devolviendo "localetuple" como un string en vez de una tupla para construir el código de locale. Acabo de ver esto: http://bugs.python.org/issue3067
(29 Jun '11, 10:45)
oscarcp
Ya veo. El módulo Lo que sí podrías hacer es convertir el literal a
Aunque creo que sería mejor tratar todo ésto dentro de la clase
(29 Jun '11, 18:52)
chemacortes
|
Creo que el código que has puesto le faltan cosas. En el inicializador
EventCalendarfaltaría pasar bien los parámetros aLocaleHTMLCalendar. Te recomiendo que lo edites así:Por otro lado, ¿qué devuelve la vista en el print de la línea 26? ¿LLeva la codificación?
El print de la linea 26 devuelve la variante de idioma, sin la codificación ni el idioma en si, es decir "en" en vez de "en_GB.UTF8"