
La traducción de Teamwork al alemán está casi lista, gracias a Koelnticket, en particular a Andreas Nebinger (¡gracias, Andreas!). Veamos un poco en detalle cómo manejamos en general los problemas de internacionalización en Teamwork; de hecho, este conjunto de problemas deberá ser abordado por cualquier aplicación web suficientemente potente.
Hay muchos sentidos en los que se puede decir que una aplicación «soporta múltiples idiomas» o está «internacionalizada»:
Interfaz. Las etiquetas y mensajes de la interfaz web están disponibles en varios idiomas. Teamwork contiene un editor de etiquetas, donde puedes crear un nuevo idioma y también modificar etiquetas existentes. Teamwork se utiliza en 43 países, casi todos usándolo en inglés; de hecho, algunos gerentes de proyecto prefieren tenerlo en inglés porque los equipos están formados por personas de diferentes países, lo que fomenta la comunicación.

Pero como es habitual 🙂 Teamwork hace más: te permite cambiar las etiquetas al vuelo en la interfaz web, guardándolas en la base de datos para que no pierdas las personalizaciones al actualizar la aplicación.

Datos. Los datos insertados en la aplicación pueden insertarse en cualquier idioma. Hemos sido cuidadosos con la codificación (siempre un problema en las aplicaciones web), de modo que se incluye el espectro completo de idiomas compatibles con UTF-8, lo que significa también griego, cirílico, árabe, japonés… Esto también supone que la base de datos en la que se ejecuta Teamwork soporte datos Unicode o UTF-8. Entonces tienes el problema adicional de que las etiquetas y los datos que tienes en la interfaz pueden necesitar ser canalizados por un medio diferente, por ejemplo, exportados en un archivo de Excel o en un PDF, y allí también puedes verse afectado por problemas de codificación.
Búsqueda. (Esto a menudo se olvida) La búsqueda de texto completo requiere la derivación (stemming) multilingüe de los contenidos: esto es de nuestra contribución técnica, que está en el contexto de Hibernate (una herramienta objeto/relacional) y Lucene (un motor de indexación):
Necesitas saber el idioma en el que está escrito un documento para indexarlo correctamente; una vez que conoces el idioma, puedes instanciar, por ejemplo, el analizador Snowball con el derivador (stemmer) del idioma correcto. Para hacer un sistema práctico, necesitarás adivinar el idioma de los documentos a partir de su contenido. Hemos encontrado una solución muy simple y efectiva […].
Para hacer que un contenido sea «encontrable» también cuando se busca desde un idioma (digamos, alemán) un documento en otro idioma (digamos, inglés), en realidad indexamos doblemente el campo de contenido, una vez con el analizador Snowball y una vez con el simple StopAnalyzer; de modo que si estás buscando desde el alemán y buscas «Telefunken», que derivado se buscaría como «Telefunk», encontrará también «Telefunken» en documentos en inglés ? .
Ver http://twproject.blogspot.com/2007/11/using-hibernate-search-with-complex.html y http://www.hibernate.org/432.html
Por lo tanto, la búsqueda de texto completo de Teamwork es consciente del idioma. De hecho, la búsqueda en Teamwork es mucho más inteligente que eso, pero este es un tema para otra publicación.
Documentación. La documentación puede proporcionarse en varios idiomas. En el caso de Teamwork, como ya ocurre en el 99% de las aplicaciones web, se proporciona solo en inglés. También creemos que será el «usuario avanzado» de la aplicación quien más necesite la documentación, y asumimos que él/ella puede leer inglés.
Entonces, ¿cómo podemos evaluar Teamwork con respecto a todos estos aspectos?
| Funcionalidad | Cómo se maneja en Teamwork |
| Interfaz | Disponible en inglés e italiano. El alemán está casi listo, el español está planificado. |
| Datos | Se admiten datos en todos los idiomas (compatible con UTF-8). |
| Búsqueda | La derivación (stemming) está disponible para todos los analizadores de Lucene: Teamwork proporciona de fábrica inglés, español, francés, alemán, portugués, italiano, sueco, danés, neerlandés, noruego, ruso y finés, pero es fácil incluir otras extensiones de Lucene. |
| Documentación | Esto se proporciona solo en inglés. |
Una P.F.A. en el sitio de Teamwork habla sobre el cambio de etiquetas: https://twproject.com/configurationFaq.page#conf5

