BBDD Varios idiomas (ESP/ENG) |
Responder |
Autor | |
majete
Colaborador Unido: 31/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 684 |
Tema: BBDD Varios idiomas (ESP/ENG) Enviado: 24/Julio/2019 a las 12:56 |
Buenos días,
Quería pediros consejo con una BBDD que llevo utilizando unos meses y que tengo la necesidad de reconvertirla a multiidioma (Español e Inglés). Realmente, sólo necesito poder extraer la información de los Reports tanto en Español (como está ahora, como en inglés), ya que nadie más que yo trabaja con ella. Cada mes añado datos nuevos que me pasan en un fichero Excel a una de las tablas. Yo tengo montado bastantes consultas que calculan una serie de ratios y de las que van a a parar a unos informes de cuadros de mando con resultados. Esa salida (en PDF) es la que necesito extraer ahora en un segundo idioma. Los Reports tienen tanto información dinámica (en tablas de datos, gráficas, títulos, etc.) como información estática (mediante el uso de etiquetas para rótulos, subtítulos, etc.). SOLUCIÓN1: Duplicar cada Report y cambiar los datos a mano. Problemas: Tener que cambiar por duplicado cualquier cambio que aplique a los Report. Los datos dinámicos string vienen de la fuente original, y para que aparezcan en otro idioma tengo que hacer una tabla de conversión. SOLUCIÓN2: Duplicar la BBDD completa y tratarla como otra independiente. Problemas: Cualquier cambio a cualquier nivel se tendrá que hacer por duplicado. Puede generar mucho trabajo si hay cambios de gran alcance a futuro. SOLUCIÓN3: Crear una variable global que valide antes de abrir cada Report cuál es el idioma que va a imprimir. En función de ese valor, buscará en una tabla de conversión los textos que correspondan. Problemas: Tengo que cambiar todas las etiquetas por cuadros de texto para poder rellenarlos dinámicamente. Necesito una tabla de conversión de TODOS los textos que aparezcan en: títulos, subtitulos, gráficos, etc. ¿Qué opináis? Recordar que es una BBDD que ya tengo montada y que no puedo plantearme hacer un nuevo diseño para cubrir esta necesidad. Muchas gracias a todos! JC
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14027 |
Enviado: 24/Julio/2019 a las 14:07 |
Puedes seguir usando etiquetas. Basta con que cambies la propiedad Caption.
Yo haría un proceso al abrir el report que recorra las etiquetas y les cambie el caption basándome en esa variable global que citas y en una tabla que contenga la información. La tabla tendría los siguientes campos: NombreReport - String NombreEtiqueta - String Idioma01 - string Idioma02 - string Idioma03 - string . . . Y así hasta los que necesites. Para obtener el valor que necesitas basta con leer el registro correspondiente y buscar en: Mitabla.Fields("Idioma" & format(VariableIdioma, "00") Así el mantenimiento será muuuu fácil, e incorporar un idioma nuevo también, bastará con que crees el nuevo campo Idiomaxx correspondiente y rellenes sus valores. Se que el diseño de la tabla es una herejía, pero los informáticos no vamos al infierno .... P.D. el sistema obviamente también te vale para formularios, caption de botones de comando, textos de ayuda de los mismos, .... Editado por Mihura - 24/Julio/2019 a las 14:08 |
|
ximo
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 03/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 2085 |
Enviado: 24/Julio/2019 a las 17:13 |
Hola, Mira el ejemplo 89 de Emilio Sancha, yo lo uso para traducir una aplicación y es genial. http://www.mvp-access.es/emilio/Access/Descargas.asp Saludos, ximo
|
|
La incansable busqueda de información abre nuestras mentes
Saludos desde Burriana |
|
lbauluz
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 29/Marzo/2005 Localización: La Gloria Estado: Sin conexión Puntos: 3865 |
Enviado: 24/Julio/2019 a las 19:35 |
En mi época... :)
Solíamos hacer una tabla con mensajes, un código de mensaje, un código de idioma y el texto. Todos los mensajes se leían de la tabla y se ponían en los "caption". Al abrir la ventana se lanzba una query a la base de datos para que devuelva todos los textos, se cambiaban los captions y luego se mostraba la ventana. Eso si, no es un trabajo de un par de horas el cambiar la forma de hacer todos los reports y añadir todos los mensajess a la tabla para que funcione... ni de dos días probablemente ampoco. Luis
|
|
El Búho es un pajarraco
|
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4832 |
Enviado: 24/Julio/2019 a las 20:09 |
Puesto a opinar y por experiencia propia diría que - Si la BBDD es pequeña o mediana cualquier solución de las propuestas es buena - Si Tu BBDD es grande o muy grande creo que lo mejor tu SOLUCIÓN2 es decir Duplicar la BBDD completa y tratarla como otra independiente ya que deberías cambiar todo la info visible y también deberías cambiar toda los mensajes No visibles como MsgBox , InputBox etc etc.. Si tu BBDD esta en fase testing y No esta 100% terminada lo mejor es No empezar con la traducción Editado por javier.mil - 24/Julio/2019 a las 20:25 |
|
majete
Colaborador Unido: 31/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 684 |
Enviado: 25/Julio/2019 a las 11:51 |
UAU! Muchas gracias por vuestros consejos y opiniones, son muy útiles para seguir avanzando en el proyecto.
@Mihura gracias que no había pensado que se puede cambiar el contenido de las etiquetas dinámicamente. Me viene bien además la estructura de tabla para el contenido de texto de los idiomas que había pensado en una distinta menos eficiente la verdad... @ximo voy a ver si puedo aprovechar algo del ejemplo que me comentas @Ibauluz madre mía que currada jajaja... no sé si tendría paciencia para tal "fregao" @javier.mil la base de datos tiene muchas consultas y en total como unos 50 reports (que se unen para generar 8 PDFs distintos) que es lo que más tiempo me ha llevado. No me puedo plantear rehacerla de nuevo. Os contaré avances! Muchas gracias a todos.
|
|
buho
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Nada en la palabra Unido: 10/Abril/2004 Localización: Valladolid Estado: Sin conexión Puntos: 11330 |
Enviado: 25/Julio/2019 a las 17:20 |
Usted perdone: En su época (Siglo XIX) no existía Access |
|
El búho es un pajarraco
|
|
ximo
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 03/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 2085 |
Enviado: 26/Julio/2019 a las 17:38 |
Hola, Aquí tienes la versión retocada que hice en su día algo más rapída y con los mensages incluidos. Tan solo tienes que crear una tabla con las diferentes palabras teniendo en cuenta que muchas de ellas se repetiran a lo largo de los formularios/reports, de esta manera. ID Español Inglés 1 Gracias|damos las gracias Than you|We thank
Al final no es tanto trabajo y si lo necesitas vale la pena. Saludos, ximo
|
|
La incansable busqueda de información abre nuestras mentes
Saludos desde Burriana |
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4832 |
Enviado: 28/Julio/2019 a las 19:23 |
Por curiosidad y como haces con los MsgBox , Inputbox y otras funciones internas que requieren de traducción ? Editado por javier.mil - 28/Julio/2019 a las 19:23 |
|
majete
Colaborador Unido: 31/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 684 |
Enviado: 31/Julio/2019 a las 10:52 |
Hola a todos,
Estoy en la fase de análisis porque tiene bastante traca el asunto. Ahora estoy metido con las gráficas, y la verdad no se me ocurre una forma práctica con la que pueda hacer el cambio de forma dinámica. Imaginaros que tengo 4 gráficas de barras con países tipo esto en un mismo Report: Si quiero seguir utilizando el mismo Report (que es lo ideal) y que al abrirlo me cambie las etiquetas/cuadros de texto al idioma correcto, ¿Cómo puedo hacer para que me cambie los textos de la gráfica que saca de la consulta? Puedo hacer una tabla de conversión para que la Consulta tenga los dos campos, el de los países en inglés y el de los países en castellano, pero claro, tengo que cambiar la consulta en tiempo de ejecución para que en función del idioma que está mostrando, me haga una consulta y otra. Si esto fuera para un par de Reports bien, pero en mi caso son decenas de reports. La verdad no se me ocurre cómo modificar esos datos de forma dinámica. Gracias! Juan Carlos
|
|
guarracuco
Moderador Unido: 24/Abril/2004 Localización: EEUU Estado: Sin conexión Puntos: 3239 |
Enviado: 31/Julio/2019 a las 13:34 |
Podrías utilizar una tabla temporal. La desventaja es que aumenta el tamaño de la bd. Si el entorno es multiusuario, la tabla se crea en local. Editado por guarracuco - 31/Julio/2019 a las 13:35 |
|
majete
Colaborador Unido: 31/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 684 |
Enviado: 20/Agosto/2019 a las 15:15 |
Gracias @guarracuco por la idea. La BD sólo la utilizo yo, aunque hay un par de personas que también la conocen y que esporádicamente me dan apoyo.
Nunca he creado esas "tablas temporales" y menos en modo ejecución. Voy a buscar en Internet a ver qué me cuenta. Saludos!
|
|
majete
Colaborador Unido: 31/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 684 |
Enviado: 29/Octubre/2019 a las 12:09 |
Hola a todos,
Bueno pues tras analizar mucho diferentes escenarios, finalmente he tenido que sucumbir a la opción más "manual" y duplicar los objetos report con los textos en inglés. He añadido en las consultas una tabla de equivalencias de idioma, por lo que no tengo que replicar las consultas y selecciono el campo en Español o en Inglés en función del report que vaya a ejecutar. Me hubiera gustado automatizar los informes para no tener que duplicarlos, pero en las gráficas me ha sido imposible poder evaluar un valor y cambiar el origen de los datos para un mismo objeto gráfico. Muchísimas gracias a todos por la ayuda. Cerramos tema. Saludos, Juan Carlos
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |