[LOCALE] problemas en windows

Chema Cortes pych3m4 en gmail.com
Lun Jun 4 13:22:14 CEST 2007


El 3/06/07, Milton Galo Patricio Inostroza Aguilera
<minoztro en gmail.com> escribió:
> estimados:
>
>    estoy tratando de definir mi locale para una aplicación que corre
> bajo windows y obentgo un error..el codigo es el siguiente:
>
> import locale
> locale.setlocale(locale.LC_ALL,"%s.%s"%(\
>         locale.getdefaultlocale()[0],
>         locale.getdefaultlocale()[1])
> )
>
> y me arroja el siguiente error:
>
>     locale.setlocale(locale.LC_ALL,"%s.%s"%(\
>   File "C:\Python24\lib\locale.py", line 381, in setlocale
>     return _setlocale(category, locale)
> Error: unsupported locale setting
>
> por consola ejecute el comando locale.getdefaultlocale() y me arroja
> lo siguiente:
>
> >>> locale.getdefaultlocale()
> ('es_ES', 'cp1252')
>
> no entiendo por qué falla....en linux todo va de maravillas...tengo python 2.4.4

Excepto 'setlocale', el resto de funciones siguen la norma RFC 1766,
nomenclatura que es independientes de la plataforma de ejecución. En
cambio, 'setlocale' depende exclusivamente de la librería C que use el
sistema operativo. En sistemas POSIX es fácil ajustar los 'locales' a
la RFC por medio de 'aliases'; en windows, no existe esta facilidad,
con lo que 'setlocale' no reconoce la nomenclatura RFC1766.

Si quieres un código que sea lo más compatible posible, ten en cuenta
lo siguiente:

setlocale(category) -- devuelve (sí, devuelve) el 'locale' del sistema
getlocale(category) -- devuelve el 'locale' RFC1766
getdefaultlocale()  -- devuelve el 'locale' RFC1766 por defecto

setlocale(category,'') -- activa el 'locale' por defecto y devuelve el
del sistema

Mi consejo es que uses siempre este último modo para activar el
'locale' por defecto:

locale.setlocale(locale.LC_ALL,'')

Si te preguntas cual sería el modo explícito que tendrías que haber
usado en windows, sería así:

locale.setlocale(locale.LC_ALL,"Spanish_Spain.1252")


RFC1766:
http://www.ietf.org/rfc/rfc1766.txt




Más información sobre la lista de distribución Python-es