Prueba Velneo Gratis

Te ofrecemos todo el poder de Velneo durante 1 mes para desarrollar la aplicación que tu empresa necesita.

Saber más
Thank you! Check your email for confirmation.

Idiomas en V7 - Ampliado

INTRODUCCIÓNDentro de V7 nos referimos con el término de vIdiomas a toda una serie de tecnologías orientadas a la internacionalización tanto de la plataforma de desarrollo como de los productos que se generen con ésta.Esta capacidad además no se refiere únicamente a la traducción de los literales que aparecen en los distintos controles de interfaz de usuario, sino también a la posibilidad de soportar diferentes juegos de caracteres, diferentes orientaciones de escritura, diferentes notaciones numéricas, diferente puntuación…, es decir, en definitiva, a la integración completa de la plataforma y de las aplicaciones con ella diseñadas en el entorno de expresión lingüística del usuario final.El presente documento trata de explicar el proceso seguido para conseguir este objetivo de internacionalización en los dos ámbitos: el de la plataforma de desarrollo y el de las aplicaciones generadas con dicha plataforma. Haremos, evidentemente, mayor hincapié en el segundo ámbito, puesto que es el más interesante para desarrolladores y usuarios finales.V7 MULTIIDIOMA:En la programación tradicional de aplicaciones directamente ejecutables hay, básicamente, dos mecanismos para conseguir que sean multiidioma:

  • i) Mantener una versión por cada idioma soportado: método sencillo de desarrollar y altamente eficaz, pero muy difícil y costoso de mantener.
  • ii) Desarrollar aplicaciones multiidioma que partan de un código único: método más costoso de implementar, pero que prácticamente no requiere mantenimiento; el rendimiento depende del método usado para llevarlo a cabo.

Para el desarrollo de aplicaciones multiidioma de código único hay dos aproximaciones:

  • i) El primero consiste en el uso de bases de datos / ficheros estructurados (".ini", txt, binarios…); este método tiene la ventaja de que se pueden hacer cambios en ejecución y de que puede ser traducido por personal no técnico (traductores, lingüistas…); como desventaja tiene un gran impacto sobre el rendimiento.
  • ii) El segundo método consiste en el uso de los denominados ficheros de recursos: la información almacenada en estos ficheros es mucho más amplia, y hace referencia a todos los aspectos del interfaz de usuario de las aplicaciones: textos, imágenes, audio, iconos, formularios, menús, botones... Los ficheros de recursos se editan en una variedad de formatos (txt, xml…) pero para su uso deben compilarse a otro tipo de formatos; aquí nuevamente tenemos dos opciones en función de la metodología a seguir:
  • Recursos embebidos: el fichero de recursos, para cada idioma, es compilado e introducido dentro del ejecutable completo, sustituyendo al conjunto original de recursos.
  • Recursos con ensamblado satélite: el fichero se compila a un formato intermedio conocido por el ejecutable, y se distribuye con él.

El método que hemos usado para la exportación a otros idiomas de los componentes (exes y dlls) de la plataforma Velneo es una combinación de recursos embebidos y recursos satélite. Por un lado tendremos un ejecutable único que incluirá los recursos para los idiomas que se consideran base (castellano e inglés), por otro lado tendremos ficheros satélite de recursos con el resto de idiomas (ficheros ".qm").El funcionamiento será el siguiente: al arrancar un componente de la plataforma este identificará el idioma del entorno de ejecución del usuario, y en función del mismo tratará de localizar un ".qm" para ese idioma; si lo encuentra lo carga en memoria y comienza a usarlo; si no lo encuentra buscará en los recursos compilados; si tampoco lo encuentra saltará al idioma por defecto.

vIDIOMASVelneo ha invertido mucho tiempo y recursos en conseguir abstraer al desarrollador de las complejidades inherentes al desarrollo de aplicaciones multiidioma; nuestros programadores no tienen que preocuparse de ficheros de recursos, de ficheros intermedios, de pérdida de coherencia de interfaz, de fallos de aplicación por traducción errónea de cadenas, de mantenimiento de un ejecutable por cada idioma, de pérdidas de rendimiento frente a mantenibilidad… simplemente deben conseguir que alguien, que no necesita tener conocimiento de ninguna herramienta o tecnología concreta, ni siquiera de informática, les traduzca los textos a los idiomas deseados. Para ello se han desarrollado una serie de tecnologías agrupadas bajo el nombre de vIdiomas. Algunos de los aspectos en que vIdiomas hará más fácil la vida a los desarrolladores son los siguientes:

  • a) Traducciones vinculadas a objetos: esta es la aportación fundamental del nuevo sistema al mundo de las aplicaciones multiidioma. Se ha desarrollado un nuevo tipo de dato orientado a la traducción de cadenas de texto a múltiples idiomas. Simplificando podríamos decir que cada elemento que presenta texto al usuario final de nuestras aplicaciones se almacena en formato "array", con una entrada para cada idioma. La traducción puede hacerse durante la programación, usando un tipo especial de control de edición desarrollado a tal efecto (ver "Imagen-2"), o bien puede realizarse a posteriori con vTranslator. Si se desea se puede bloquear la traducción de un elemento. El hecho de que se use un tipo de dato implica que la traducción de textos queda vinculada al objeto, y por lo tanto viaja con él. Es decir, si reutilizamos un formulario con botones, labels, combos, rejillas … de una aplicación traducida a castellano, inglés y gallego, por ejemplo, en otra que está en castellano, francés, gallego y alemán, sólo tendremos que traducir ese formulario en la nueva aplicación a francés y alemán.
  • b) Escritura bidireccional: uno de los problemas más frecuentes con los que se encuentran los desarrolladores a la hora de traducir aplicaciones, es el de los controles de entrada de texto en idiomas con sentido de escritura de derecha a izquierda. V7 hace transparente esta problemática a sus desarrolladores, ya que sus controles de edición automáticamente se adaptan al sentido de escritura vinculado al idioma en uso.
  • c) Unicode: el nuevo tipo de datos creado guarda las cadenas de texto en formato UNICODE, soportando de esta manera cualquier símbolo de cualquier lenguaje (cirílico, oriental, arábigo, romance…)
  • d) Unificación de alto rendimiento: aunque en el sistema de vIdiomas los recursos asociados a los distintos idiomas están vinculados a los objetos, esto no implica que cuando un usuario final cargue una caja tenga que cargar todos los recursos de todos los idiomas, sólo carga los asociados al idioma identificado por vClient en ejecución. De esta manera tenemos una única aplicación para todos los idiomas, pero cada cliente final la carga y ejecuta sólo en el suyo.
  • e) Layout automático: la traducción de aplicaciones a otros idiomas tiene uno de sus talones de Aquiles más importantes en los efectos visuales de las traducciones. Al cambiar un texto de idioma, cambia su tamaño; esto implica, por ejemplo, que el texto de un botón puede quedar cortado; o que el texto de un check puede alargarse hasta pisar un control contigüo; o que se pueden perder las alineaciones entre controles. Velneo brinda una solución automatizada a sus programadores: los controles se estiran automáticamente, si deben desplazar a otros lo hacen de manera proporcional, si estaban alineados se reajustan…Por supuesto, si se desea recurrir a diseños manuales para solucionar el problema también es posible.
  • f) Traducción distribuida: al implementarse todas las traducciones usando tipos de datos vinculados a los objetos, las traducciones quedan vinculadas a las cajas, y por lo tanto se benefician de las grandes ventajas de esta nueva tecnología de Velneo (las cajas), incluyendo la posibilidad de traducción remota usando servidor de edición.
  • g) Traducción profesional y segura: aunque la traducción en edición es una gran ventaja y puede llegar a ser muy útil, en la mayoría de las ocasiones la traducción en un proceso que se realiza de forma separada al desarrollo. Para facilitar esta tarea se ha creado la herramienta vTranslator (ver "Imagen-3"), que nos presenta todos los elementos susceptibles de traducción agrupados por cajas y clasificados jerárquicamente por objetos (botones dentro de formularios, procesos vinculados a menús…), mostrando su estado actual de traducción en los diferentes idiomas de la caja. Este herramienta, sencilla, simple e intuitiva, permite además que traductores externos, que nada tengan que ver con el mundo de la informática, puedan realizar por nosotros las traducciones, en menos tiempo y con un coste mucho menor que si lo hicieran desarrolladores. Y sobre todo podremos contratar este tipo de servicios sin temor alguno: la seguridad de nuestro código está garantizada, ya que las cajas no salen de nuestro servidor. vTranslator se conecta al servidor de edición y carga la información que necesita de la caja; no muestra controles, ni procesos, ni parte alguna de nuestro código. Si preferimos que en lugar de conectarse a nuestro servidor de edición los traductores externos trabajen en local, simplemente tenemos que darles la caja cerrada. Nuevamente sólo podrán conectarse a ella para obtener la información que necesitan para traducir; ni más ni menos.
Regístrate ahora y nuestro equipo se pondrá en contacto muy pronto