Interface en varios idiomas

17/02/2004 - 07:41 por Beyonce | Informe spam
Hola.

Estoy creando un programita que deseo permita al usuario
elegir la interface del mismo en varios idiomas (Español,Ingles,y alguno
más).

Alguien puede orientarme un poquito para que yo empiece con buen pie?
Algún método eficaz.
NO pretendo que me lo den todo echo sino que me orienten en cual podría ser
una manera fácil y elegante de programar algo así.

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral González [MVP]
17/02/2004 - 16:13 | Informe spam
Un enfoque que se utiliza bastante es el de tener una dll de recursos para
cada idioma que se desea soportar. Esta dll se carga dinamicamente con
LoadLibray (o AfxLoadLibray en MFC) y se establece como origen de los
recursos. Para saber como crear esta dll lee Creating a Resource-Only DLL en
la MSDN.

Para establecerla como origen de los recursos se utiliza la función
CAtlBaseModule::SetResourceInstance en ATL y la función AfxSetResourceHandle
en MFC.

Usando el API se utiliza LoadResource, LoadString etc... para cargar los
recursos, pasando como primer parametro el handle de la libreria de recursos
que previamente hemos cargado con LoadLibrary

Rodrigo Corral González [MVP]
microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#2 Cholo Lennon
17/02/2004 - 17:48 | Informe spam
Otro método más laborioso es manejar tu mismo archivos independientes de
texto para cada idioma. Esto implica trabajo: Tienes que cargar las cadenas,
menús, texto de los controles, etc por tu cuenta. Si mirás el segundo
ejemplo que te mando de un archivo de recursos 'manual' verás que lo puedes
implementar con las funciones para leer archivos ini
(WritePrivateProfileString / GetPrivateProfileString). Obviamente deberás
agregar el código de carga de recursos en la inicialización de cada objeto,
además de definir un archivo que contenga las constantes de cadena para
acceder a los datos localizados.

-
El codigo siguiente está tomado del archivo spanish.rlg del programa
RegCleaner
-

*RegCleaner LanguagePack*
*RG Version : 4.3*

// Las líneas que empiezan con "//" son comentarios,
// pueden modificarse puesto que sólo son de información.
// NO han de modificarse las líneas que empiezan con "*".
// Los signos "-" son optativos y no intervienen en el programa.
//
// Por favor, envíeme la traducción que haya hecho a
// y no la comprima con ningún programa (tipo Winzip),
// envíemela como archivo adjunto tal como está. De ese modo puedo añadirla
// al paquete oficial con un clic. Además, no traduzca ningún otro archivo,
// como el léeme, yo no puedo distribuirlos.
// (No necesita traducir estas líneas de instrucciones)

*Language* //El nombre del idioma en inglés
Spanish

*LangPack Author* //Puede poner su nombre en la línea siguiente
Jesús Felipe

*The File menu*
Archivo
-Guardar como .txt
-Salir

*The Select menu*
Seleccionar
-Todo
-Nada
-Invertir selección
-Marcar seleccionado
-Marcar las líneas seleccionadas
...
etc

-
Otro ejemplo. El codigo siguiente esta tomado de spanish.ini del programa
SlowView
-

[Header]
Language=Español (Spanish)
Author=Richard Holt
Email=Unknown

[OptionCaptions]
Options_Title=Opciones
Options_Filetypes=Tipos de Archivos
Options_Viewer=Visualizar
Options_Browser=Navegador
Options_General=General
Options_Quantization=Cuantización
Options_Toolbar=Herramientas

[ToolbarLabels]
Open=Abrir
Reload=Recargar
Browser=Navegador
Sep1=Sep1
SaveAs=Guardar
Exit=Salir

[Dlg_Options]
Appearance=Apariencia
AlwaysOnTop=&Siempre por encima
OnlyOneInstance=Sólo una Instancia
ViewStyle=Estilo del Visor:
SlideShow=Diapositivas
Delay=Demora:
WrapAround=&Envolver
PlayMediaTillEnd=Tocar Video/Musica al final
Direction=Dirección:
Fullscreen=Pantalla completa
...
etc


Saludos
Cholo Lennon
Salta, ARG
Respuesta Responder a este mensaje
#3 Beyonce
17/02/2004 - 21:44 | Informe spam
GRACIAS POR TODO
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida