• Domingo 15 de Diciembre de 2024, 01:47

Autor Tema:  Sugerencias para Multilenguaje  (Leído 1107 veces)

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Sugerencias para Multilenguaje
« en: Miércoles 8 de Julio de 2009, 14:55 »
0
Buenas:

estoy programando el interfaz de un dispositivo electronico (un estilo a un movil) y bueno, tengo menues, botones, labels... etc.
El interfaz esta bastante bien hecho, pero me ha surgido duda de diseño a la hora de implementar el multilenguaje.

Mi idea , por ahora, es crear una clase de strings especiales, que miren una variable global para saber el idioma en el que esta el equipo, y que automaticamente cambien su puntero a uno diferente aplicando un offset definido por el idioma seleccionado.

Entonces, durante el codigo habria que ir usando los strings por una referencia y luego definir en un .h/.cpp los arrays de strings con sus numeros de referencia.
Encuentro bastante engorroso la forma de implementar esto y no tengo muy claro si es una buena solución, como soleis hacer el multilenguaje? como veis esta solución?

gracias por cualquier idea!  :good:

PD: es un programa embebido en un microcontrolador, asi que no puedo usar resources como se usaria en visual studio.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Sugerencias para Multilenguaje
« Respuesta #1 en: Miércoles 8 de Julio de 2009, 15:05 »
0
Algo simple podria ser un array grande (puede ser dinamico llegado el caso):

Código: C++
  1. #include <stdio.h>
  2.  
  3. typedef enum idiomas
  4. {
  5.   english,
  6.   spanish,
  7.   idiomasTotal
  8. };
  9.  
  10. typedef enum cadenas
  11. {
  12.   error,
  13.   info,
  14.   saludo,
  15.   cadenasTotal
  16. };
  17.  
  18. char *cadenas_multi[idiomasTotal][cadenasTotal] =
  19. {
  20.   {"error", "information", "welcome to"},
  21.   {"error", "informacion", "bienvenido a"},
  22. };
  23.  
  24. void main()
  25. {
  26.   idiomas idioma = english;
  27.   printf("%srn", cadenas_multi[idioma][info]);
  28.   idioma = spanish;
  29.   printf("%srn", cadenas_multi[idioma][saludo]);
  30. }
  31.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Sugerencias para Multilenguaje
« Respuesta #2 en: Viernes 10 de Julio de 2009, 09:13 »
0
ok gracias!  :good:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Sugerencias para Multilenguaje
« Respuesta #3 en: Lunes 13 de Julio de 2009, 17:27 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.