Locales
Posted by graineri on 2008-11-02 23:11
Respuesta a mi post sobre Locales.
Aclaro para el resto por las dudas: en general los programas utilizan la
información de internacionalización por defecto que tiene el sistema
operativo para mostrar moneda, valores decimales, etc etc.
En c++ existe una función setlocale que permite forzar el locale a 'en_US'
'fr', etc.
Si uds. cambian el locale luego de llamar al gtk-init, tienen que llamar al
gtk-locale (o algo así) para decirle que vuelva a mirar el locale que está
seteado.
Técnicamente no dijiste nada mal, pero en realidad depende de que uds.
guarden valores de punto decimal usando alguna api de xml que use el locale
por defecto del proceso en lugar de especificar que se grave con, por
ejemplo, coma en lugar de punto. En general, es como dijiste vos, pero
dependerá del framework.
Por ejemplo, si la api xml usa directamente un cout o cualquier ostream para
mandar los objetos de punto flotante y no le setea un locale específico, van
a tener problemas.
Comentario aparte, muchos sistemas de contabilidad usan enteros en lugar de
floats para grabar dinero, para evitar perdida de precisión... en estos
casos no les interesa el locale y se ahorran el problema.
Para mostrarles estaba buscando como se le cambia el locale solamente al
cout y encontré esta pág:
http://www.daniweb.com/forums/thread89261.html
fíjense cómo el chabón usa el mismo locale pero le dice
específicamente que formatee el separador de miles.
yo le setearía el mismo locale (sp, o en_us) en ambos procesos para
evitar problemas.
Saludos.
Pablo.
El 2 de noviembre de 2008 12:18, Gabriel Raineri <grain...@gmail.com>escribió:
- Hide quoted text -
- Show quoted text -
> ¡Holaaaaaaaa!
> Sigo compartiendo con ustedes más cosas que hemos ido viendo...
> Esto no lo testeamos pero creemos que nos va a traer problemas. Si el
> servidor y el cliente poseen distintos locales es probable que la
> lectura no funcione bien.
> Pongamos un ejemplo:
> Server: Locale --> Ingles.
> Cliente: Locale --> Español.
> Cuando el server mande el XML al cliente mandará los valores numéricos
> con el punto como separador decimal y el cliente eso lo interpretará
> como separador de miles.
> No lo probamos, pero creemos que es más que factible que eso no ande.
> Con lo cual habría que setear la misma Locale para ambos.
> Si dije alguna huevada, corríjanme.
> Abrazos,
> Gaby
Aclaro para el resto por las dudas: en general los programas utilizan la
información de internacionalización por defecto que tiene el sistema
operativo para mostrar moneda, valores decimales, etc etc.
En c++ existe una función setlocale que permite forzar el locale a 'en_US'
'fr', etc.
Si uds. cambian el locale luego de llamar al gtk-init, tienen que llamar al
gtk-locale (o algo así) para decirle que vuelva a mirar el locale que está
seteado.
Técnicamente no dijiste nada mal, pero en realidad depende de que uds.
guarden valores de punto decimal usando alguna api de xml que use el locale
por defecto del proceso en lugar de especificar que se grave con, por
ejemplo, coma en lugar de punto. En general, es como dijiste vos, pero
dependerá del framework.
Por ejemplo, si la api xml usa directamente un cout o cualquier ostream para
mandar los objetos de punto flotante y no le setea un locale específico, van
a tener problemas.
Comentario aparte, muchos sistemas de contabilidad usan enteros en lugar de
floats para grabar dinero, para evitar perdida de precisión... en estos
casos no les interesa el locale y se ahorran el problema.
Para mostrarles estaba buscando como se le cambia el locale solamente al
cout y encontré esta pág:
http://www.daniweb.com/forums/thread89261.html
fíjense cómo el chabón usa el mismo locale pero le dice
específicamente que formatee el separador de miles.
yo le setearía el mismo locale (sp, o en_us) en ambos procesos para
evitar problemas.
Saludos.
Pablo.
El 2 de noviembre de 2008 12:18, Gabriel Raineri <grain...@gmail.com>escribió:
- Hide quoted text -
- Show quoted text -
> ¡Holaaaaaaaa!
> Sigo compartiendo con ustedes más cosas que hemos ido viendo...
> Esto no lo testeamos pero creemos que nos va a traer problemas. Si el
> servidor y el cliente poseen distintos locales es probable que la
> lectura no funcione bien.
> Pongamos un ejemplo:
> Server: Locale --> Ingles.
> Cliente: Locale --> Español.
> Cuando el server mande el XML al cliente mandará los valores numéricos
> con el punto como separador decimal y el cliente eso lo interpretará
> como separador de miles.
> No lo probamos, pero creemos que es más que factible que eso no ande.
> Con lo cual habría que setear la misma Locale para ambos.
> Si dije alguna huevada, corríjanme.
> Abrazos,
> Gaby
Home / Developer API / Tour / Get a Project - Solutions for Bug & Issue Tracking, Collaboration Tools, Subversion Hosting, Git Hosting
Taller i is powered by Assembla.
0 Comments