https://foro.gambas-es.org/viewtopic.php?f=10&t=6380&p=38252#p38252
-----------------------------------
tincho
Miercoles, 17 May 2017, 20:48

Re: TableEdit: Ejemplo De Uso
-----------------------------------
[quote user="jsbsan" post="38250"]...Para el tema de las traducciones, hay que tener en cuenta, que no es buena idea usar el nombre del campo como nombre de la columna, porque no se va  a traducir al cambiar el idioma.[/quote]
Si, es verdad, yo vengo usando el siguiente "método" para los programas que usan bases.
Partiendo de que las tablas y por lo tanto sus campos serán invariables para un programa dado, lo que hago es colocar una función en el módulo de inicio del programa donde agrego a una matriz de texto los nombres de los campos de la tabla, entonces el campo 0=stxTitles[0] ... n=stxTitles[n].
Este titulo del campo esta agregado de esta manera:
Nota: La matriz es de tres dimensiones de la forma ["tabla-o-vista", "nombre-del-campo", ("Titulo-traducible")]. De esta manera las consultas SQL las tablas y las vistas son siempre las mismas, solo varia el texto que se "ve" en los Gridwiews u otros sitios, por ejemplo los formularios de edición de datos.

[code linenumbers=false syntax=gambas]
Private Function LoadTitles() '' La carga de títulos de esta manera permite luego traducir la aplicación mas fácilmente. Si se usa un método con archivo de texto estos textos no pueden traducirse.

  stxTitles.Add(["contacts", "contactindx", ("Índice")])
  stxTitles.Add(["contacts", "contactname", ("Nombre")])
  '...
  stxTitles.Add(["countries", "countryindx", ("Índice")])
  stxTitles.Add(["countries", "countryname", ("País")])
  '...
  stxTitles.Add(["groups", "groupindx", ("Índice")])
  stxTitles.Add(["groups", "groupname", ("Grupo")])
  '...
  stxTitles.Add(["provinces", "provinceindx", ("Índice")])
  stxTitles.Add(["provinces", "provincename", ("Provincia")])
  '...
  stxTitles.Add(["roles", "roleindx", ("Índice")])
  stxTitles.Add(["roles", "rolename", ("Rol")])
  '...
  stxTitles.Add(["sections", "sectionindx", ("Índice")])
  stxTitles.Add(["sections", "sectionname", ("División")])
  '...
  stxTitles.Add(["view_contacts", "contactindx", ("Índice")])
  stxTitles.Add(["view_contacts", "contactname", ("Nombre")])

End
[/code]

Luego el el programa cuando se quiera poner el nombre del campo tal o cual, solo basta con extraerlo de la matriz [b]stxTitles[/b].

En github deje un ejemplo de un programa agenda de contactos en donde aplico dicho método:
https://github.com/belmotek/tocontac

Saludos.


