|
Página 1 de 1
|
Traduccion (Seleccion De Idioma)
Autor |
Mensaje |
jodacame
Usuario
Registrado: Noviembre 2009
Mensajes: 23
Edad: 38 Ubicación:
|
Traduccion (Seleccion De Idioma)
Buenas.
Hace un par de días estoy buscando información sobre como puedo traducir mi aplicativo en tiempo de ejecución sin importar cual sea el idioma configurado en el sistema operativo, me gustaria saber si alguien tiene idea de como puedo hacer esto, quiero que el usuario a través de un menú pueda seleccionar el idioma del aplicativo y que este cambie automáticamente o reiniciando el aplicativo.
Muchas Gracias por la ayuda.
PD: Ya he usado la herramienta de traducción de gambas y creo los archivos .po pero no se como puedo usar estos.
=================== "La imaginación es mas grande que el conocimiento"
Albert Einstein
== Haciendo la vida mas facil.... ==
última edición por jodacame el Lunes, 11 Enero 2010, 14:58; editado 1 vez
Editado por jodacame, Lunes, 11 Enero 2010, 14:58: Agregado PD
|
#1 Lunes, 11 Enero 2010, 14:56 |
|
|
Cubel
Técnico Programador
Registrado: Enero 2010
Mensajes: 182
Edad: 35 Ubicación: Valencia - España
|
Re: Traduccion (Seleccion De Idioma)
A mi también me interesaría, pero yo no e tocado nada respecto a este tema...
=================== Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.
Albert Einstein
En el SEXO querer es poder, si ELLA quiere, TU puedes.
Cubel!
|
#2 Martes, 12 Enero 2010, 13:29 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Traduccion (Seleccion De Idioma)
La internacionalización de las aplicaciones se realiza marcando la opción de proyecto traducible desde la configuración del proyecto. Usando la herramienta Traducir (Ctrl+T) es posible traducir todos los literales de los controles de la aplicación. Para traducir cadenas de texto que estén escritas en el código, basta con encerrarlas entre paréntesis y aparecerán listas para traducir en el interfaz citado.
De esta manera, una vez completas las traducciones, éstas se cargarán automáticamente dependiendo del idioma de nuestro sistema operativo. Para poder ver nuestra aplicación en otro lenguaje, necesariamente deberemos instalar los "locales" del idioma que queramos, pues de otro modo no veremos los textos traducidos y se usará nuestro lenguaje por defecto (o el que hayamos designado como tal en nuestra aplicación).
Tenemos además que indicar a nuestra aplicación un argumento especial o usar la propiedad Language de la clase System que requiere como argumento un string de la forma:
"xx_XX.UTF-8"
Donde xx_XX es el código del lenguaje, por ejemplo para español de España 'es_ES'.
Pero te lo mostraré con un ejemplo que utilizo en mis aplicaciones. Este código va en un módulo que yo llamo MStart y es el que está marcado como 'clase de inicio', es decir el programa al arrancar lo hará desde este módulo, que luego llama al formulario principal después de haber seleccionado el idioma.
De esta forma, puedo ejecutar mi aplicación desde consola (o desde un lanzador) simplemente poniendo un parámetro después del nombre del ejecutable, por ejemplo:
miaplicacion -en
lo que arrancaría "miaplicacion" en el idioma ingles.
Pues éste es el código:
PUBLIC SUB Main() 'Select language from command line args. You need to install selected locales to work
'USAGE dfhLog.gambas -xx (where xx is your selected language)
DIM a AS String
IF Application.Args[1] THEN 'if no args, it shows in your default lang
a = Application.Args[1]
SELECT CASE a
CASE "-es"
System.Language = "es_ES.UTF-8"
CASE "-gl"
System.Language = "gl_ES.UTF-8"
CASE "-pt"
System.Language = "pt_PT.UTF-8"
CASE "-en"
System.Language = "en_US.UTF-8"
'TODO add more languages
CASE ELSE
Message.Info(("Possible values for arguments are:\n-es (for Spanish)\n-gl (for Galego)\n" &
"-pt (for Portuguesse)\n-en (for English)"))
END SELECT
ENDIF
FMain.Show
END
Ahí tienes la idea básica, pero recuerda que no es posible cambiar el lenguaje en tiempo de ejecución, hay que reiniciar la aplicación necesariamente.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#3 Martes, 12 Enero 2010, 15:50 |
|
|
Ender
Aprendiz
Registrado: Diciembre 2009
Mensajes: 55
Edad: 48
|
Re: Traduccion (Seleccion De Idioma)
Gran información, me la guardo, jejeje. Gracias jguardon!
PD: Si en algún momento necesitas poner algún programa en catalán, me ofrezco a hacerte la traducción necesaria.
Salu2, cracks
|
#4 Martes, 12 Enero 2010, 16:21 |
|
|
ljma
Programador
Registrado: Enero 2010
Mensajes: 106
Edad: 54 Ubicación:
|
Re: Traduccion (Seleccion De Idioma)
Hola,
Tengo la costumbre de crear un módulo con costantes de texto que se suelen repetir en los programas como por ejemplo los clásicos textos:
Citar:
PUBLIC CONST version AS String = "1.1.0"
PUBLIC CONST programa AS String = ("nombre del programa")
PUBLIC CONST iconotux AS String = "TPV-ERP/img/tux_currito.ico"
'cadenas de menu
PUBLIC CONST menu_nuevo AS String = ("Añadir")
PUBLIC CONST menu_editar AS String = ("Editar")
PUBLIC CONST menu_Borrar AS String =( "Borrar")
PUBLIC CONST menu_imprimir AS String =( "Imprimir")
PUBLIC CONST menu_seleccionar AS String =( "Seleccionar")
PUBLIC CONST menu_aceptar AS String = ("Aceptar")
PUBLIC CONST menu_salir AS String = ("Salir")
PUBLIC CONST menu_ayuda AS String = ("Ayuda")
PUBLIC CONST menu_next AS String = ("Siguiente")
PUBLIC CONST menu_previus AS String = ("Previo")
Posteriormente asigno estas cadenas a los botones, etiquetas, o controles en sus correspondientes formularios al inicializar.
El problema es que aunque haga las oportunas traducciones de estas cadenas de texto, luego no aparecen traducidas al cambiar el idioma, sale el texto del módulo. He probado a traducir el propio idioma por defecto (con fines didácticos) pero tampoco coge la traducción.
¿Alguien sabe como solucionar esto y poder asignar las traducciones de las costantes a los objetos?
Gracias anticipadas
Saludos
|
#5 Jueves, 01 Julio 2010, 09:08 |
|
|
abarzuaf
Ingeniero Programador
Registrado: Octobre 2009
Mensajes: 265
Edad: 54 Ubicación:
|
Re: Traduccion (Seleccion De Idioma)
Hola.
Solo tienes que probar con el codigo que mas arriba coloca Jguardon.
Para probar, dentro de un formulario inserta un control button y dentro del codigo del formulario pon:
Luego, tienes que realizar la traduccion al ingles, mediante la herramienta de traduccion.
Ejecutalo, y si no te funciona es que no tienes instalado el soporte para ingles en tu equipo.
Saludos
|
#6 Jueves, 01 Julio 2010, 14:23 |
|
|
ljma
Programador
Registrado: Enero 2010
Mensajes: 106
Edad: 54 Ubicación:
|
Re: Traduccion (Seleccion De Idioma)
Hola abarzuaf,
Gracias por la respuesta. El soporte lo tengo instalado porque hay partes que se traducen correctamente.
El problema es que no quiero repetir estas cadenas de texto en cada formulario. Me gusta más tener un módulo aparte con los textos "repetitivos" y apuntar a ellos desde cada formulario. La ventaja es evidente, traduces una vez para todo el programa con independencia de las veces que emplees el literal, lo mismo si hay que corregir, etc.
Citar: En un módulo
PUBLIC CONST texto AS String = ("Añadir")
etc, etc
En una form
PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
System.Language = "en_US.UTF-8"
Button1.Caption = modulo.texto
END
En otra form
PUBLIC SUB _new()
END
PUBLIC SUB Form_Open()
System.Language = "en_US.UTF-8"
Button1.Caption = modulo.texto
END
Esto no consigo que se traduzca.
Gracias otra vez
Saludos
|
#7 Jueves, 01 Julio 2010, 17:59 |
|
|
abarzuaf
Ingeniero Programador
Registrado: Octobre 2009
Mensajes: 265
Edad: 54 Ubicación:
|
Re: Traduccion (Seleccion De Idioma)
Hola.
Estuve probando y tienes razón. Las traducciones no se propagan desde el modulo a los formularios.
Al parecer cada formulario o modulo en que se ocupa la cadena, debe ser traducida.
Deberías enviar un correo a la lista en Ingles, para ver si este comportamiento es una característica normal.
Saludos
|
#8 Jueves, 01 Julio 2010, 18:40 |
|
|
ljma
Programador
Registrado: Enero 2010
Mensajes: 106
Edad: 54 Ubicación:
|
Re: Traduccion (Seleccion De Idioma)
Hola,
Muchas gracias; así lo haré. Si obtengo respuesta lo publicaré puntualmente.
Saludos
|
#9 Jueves, 01 Julio 2010, 21:57 |
|
|
obedlink
Usuario
Registrado: Marzo 2013
Mensajes: 13
Edad: 38
|
Re: Traduccion (Seleccion De Idioma)
hola aprovechando este tema necesito ayuda con la traducción de mi aplicación, el idioma mi aplicacion por defecto es el español y ya tengo la traducción al inglés, pero, luego creo un paquete instalable .deb, lo instalado y aun que tenga mi sistema (kubuntu 13.04) totalemente en ingles (region=U.S.A, lenguaje Ingles Americano) el programa sigue abriendose en español.
he intentaod hacer una aplicacion con un solo boton (Aceptar,accept) y nada siempre sale en español. que podria estar haciendo mal?
|
#10 Jueves, 04 Abril 2013, 06:03 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|