Shell   16-02-2025, 14:51
#1
Buenas!.

Es algo que hablemos hablado más de una vez.

Acabo de crear un ejemplo y me gustaría subirlo a la Granja de Gambas.

Primer problema que me encuentro. La internacionalización del proyecto.

¿ De donde parto ?. ( Dos opciones )

- Mi proyecto está en español. ¿ Puedo traducir al resto de los idiomas partiendo de esto ?

- Mi proyecto lo he traducido manualmente a Inglés. Lenguaje por defecto en el menú de propiedades y ahora lo voy a traducir
al resto de los idiomas

Saludos
Última modificación: 16-02-2025, 14:52 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tercoide   17-02-2025, 13:51
#2
Tincho tiene una App llamada Tradukisto que hace automaticamente ese trabajo.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
Shell   18-02-2025, 00:45
#3
(17-02-2025, 13:51)tercoide escribió: Tincho tiene una App llamada Tradukisto que hace automaticamente ese trabajo.

Lo sé, la he usado y es una buena ayuda.
La debería usar si quiero traducir a más de un idioma.  Pero por ahora solo estoy traduciendo a inglés.

La duda que tenía es que no sabía si escribir el proyecto en inglés y partiendo de este, traducir
al resto de los idiomas. O partiendo del español traducir al resto de los idiomas. Solo eso.
Aunque la verdad es que parece que da igual.

Como un estándar, debería partir de inglés. Pongamos este caso, es un proyecto de ejemplo que se traduce
a inglés.

Código:
Public Sub btnSaludar_Click()

  'Este botón al ser presionado, saludará al usuario

  Message.Info(("Hola ") & txtBoxNombre.Text & (". Bienvenido a Gambas!"))

End

Se ha traducido los mensajes de texto de la interfaz gráfica y ademas se ha traducido los mensajes que va a mostrar
en la interfaz gráfica al dar la bienvenida.

Esto es un ejemplo muy sencillo. Pero debe ser algo que se hace en tiempo de ejecución.
Supongo que una persona que es nativa inglesa no va a ver el código fuente traducido.
A eso voy.

En ese caso me tendría que decantar por un idioma al desarrollar un proyecto.
La mayoría de los desarrolladores suelen hacerlo en su idioma nativo por comodidad.
Incluso hasta a la hora de compartir el mismo, aunque suele ser más en inglés.

Había pensado como mínimo traducir los comentarios a inglés.
En parte no sería demasiado difícil e incluso se podría hacer con una aplicación.
La comillas simple no se usa para otra cosa en Gambas que no sea para comentarios, ¿ no ?

Una aplicación que lea el código fuente, que localice cada uno de los comentarios, los traduce
y luego repone los comentarios con el idioma que nos interese. Conociendo el número de
línea donde se encuentra el comentario.

Pero eso solo en el caso de querer enseñar a entender que hace cada parte del proyecto.

Que otro dice, pues también el/ella lo puede traducir.  Rolleyes


[Imagen: hZK6EDkl.png]
Tengo un usuario con idioma inglés para las pruebas.

Como se puede observar el código fuente no se traduce, como ya era de suponer.
Pero fijaros entre Hello y mi nombre de usuario, se ha comido el espacio.  Huh
No esperaba eso. Parece que ignora los espacios en blanco por defecto.

Saludos
Última modificación: 18-02-2025, 01:08 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   18-02-2025, 23:36
#4
Hola shell,
Mira hasta donde se, puedes poner los textos en tu programa en el idioma que quieras, y luego traducirlo.
El caso es que si, por ejemplo, un griego usa tu programa y este no esta traducido al griego todo le aparecerá en español. Esa es una de las razones por la que es recomendable poner los textos en ingles y traducirlos a partir de este.

1 Saludo.
Shell   19-02-2025, 12:29
#5
(18-02-2025, 23:36)tincho escribió: Hola shell,
Mira hasta donde se, puedes poner los textos en tu programa en el idioma que quieras, y luego traducirlo.

Más sencillo es imposible.

(18-02-2025, 23:36)tincho escribió: El caso es que si, por ejemplo, un griego usa tu programa y este no esta traducido al griego todo le aparecerá en español. Esa es una de las razones por la que es recomendable poner los textos en ingles y traducirlos a partir de este.

Claro, es normal, si no existe la traducción a su idioma.  Pero visto desde ese punto. Como dijiste antes, se podría traducir al griego partiendo
del español.  No parece realmente un problema, siempre que traduzca a los idiomas que interesa. 
Ademas, en este caso para eso esta tu aplicación, que si no recuerdo mal, creaste hasta un video tutorial.
No recuerdo la versión que he probado. Creo que tengo dos. Buscaré el post que creaste en su día.

Distinto ya sería traducir el código fuente. Si es para algo internacional, sería mejor en Inglés.
Lo que me pareció raro fue que al traducir en el mismo código, se comiera el espacio. Que puede ser algo por defecto.
Un espacio en blanco no tiene traducción, pero no se respetó el espacio.

El problema de las traducciones es que no es lo mismo la longitud de una frase dicho en un idioma que en otro.
Pero eso dependerá donde lo vayamos a mostrar y las propiedades del control que lo muestra.
No es algo sencillo a la primera. Smile

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   20-02-2025, 14:47
#6
Sobre el problema con las cadenas, que debe traducir y que "no". Ese espacio no debe traducirse.
Entonces quedaría así:

[Imagen: F7jsPIml.png]

Ya lo había visto antes, pero no sabía que descalificaría el espacio. Así que solo encierro la palabra "Hola" entre los
paréntesis y añado una cadena vacía que no se va a traducir.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
tincho   21-02-2025, 14:48
#7
Lo correcto seria usar Substr.
Código:
Dim s As String

  s = Subst(("Hello &1. Wellcome to Gambas!"), TextBox1.Text)

1 Saludo.
Shell   21-02-2025, 15:31
#8
Gracias Tincho, voy a probarlo. Lastima que no se pueda dar un like al mensaje.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.