Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Traduccion (Seleccion De Idioma)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
jodacame - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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!
 
Cubel - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
Ender - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
ljma - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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:

PRIVATE CONST texto AS String = ("Añadir")

PUBLIC SUB _new()
END

PUBLIC SUB Form_Open()
System.Language = "en_US.UTF-8"
Button1.Caption = texto
END


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
 



 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
ljma - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Traduccion (Seleccion De Idioma) 
 
Hola,

Muchas gracias; así lo haré. Si obtengo respuesta lo publicaré puntualmente.


Saludos
 



 
ljma - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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?
 



 
obedlink - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Eliminar Seleccion De Un ColumView 2fast2good General 2 Lunes, 28 Junio 2010, 01:07 Ver último mensaje
2fast2good
No hay nuevos mensajes Seleccion De Botones Erik G Controles/Librerías/Componentes 5 Miercoles, 14 Marzo 2012, 05:32 Ver último mensaje
Erik G
No hay nuevos mensajes Ayuda Con Una Traduccion Del Libro ivanovichenco General 5 Viernes, 29 Marzo 2013, 00:34 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Como Hacer Seleccion Multiple En Tableview... v3ctor General 4 Martes, 16 Agosto 2016, 15:31 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron