2009-09-02 20 views
23

Tengo una aplicación web escrita en Java que se dirige a varios países, todos los cuales hablan idiomas diferentes (y la mayoría de las veces, varios idiomas, eso es Europa para usted).Administración de la localización de archivos de propiedades de Java

Tenemos un montón de archivos .properties que contienen cadenas localizadas, y nuestro procedimiento actual es enviar por correo electrónico los archivos específicos del idioma a nuestros socios para actualizarlos antes de realizar actualizaciones importantes.

Sin embargo, este proceso es bastante propenso a errores, ya que a veces las personas olvidan traducir nuevas cadenas ya veces las nuevas cadenas no se agregan a cada archivo de idioma, por lo que los errores pequeños se solucionan fácilmente.

¿Alguien sabe de algún software existente que pueda ayudarnos a resolver este problema?

Como mínimo, estoy pensando en algo que le permita cargar un archivo maestro (por ejemplo, en inglés), un archivo localizado y luego resaltar las claves que se agregaron o eliminaron del maestro archivo.

+0

Ese fue mi primer proyecto como pasante ;-P! Lamentablemente fue una herramienta interna. –

Respuesta

9

He utilizado Jinto para ese fin, así como EPFE (versión anterior, no he probado el más nuevo).

Ambos son complementos de Eclipse, ambos son bastante decentes si puede pasar el hecho de que reordenarán las claves en sus paquetes de recursos. Luego también está Babel - No lo he probado personalmente, así que no sé qué tan bueno es.

+0

De hecho, estos son proyectos interesantes, pero desafortunadamente no parecen ser adecuados para traductores no técnicos sin un trabajo importante. – andri

+0

@andri - ¿Qué quieres decir con "trabajo importante"? Necesita instalar Eclipse y uno de esos complementos, eso es todo; no hay nada "técnico" involucrado después. Sus traductores verán una pantalla como esta: http://www.guh-software.de/images/jinto1.gif, hagan lo suyo, y recuperarán su paquete de recursos. Si te sientes aventurero :-) incluso puedes mostrarles cómo verificarlo desde Eclipse. – ChssPly76

+0

Quiero decir que los usuarios son * no técnicos *: la instalación de Eclipse y un complemento, sin mencionar el uso de un SCM, va mucho más allá. Tendría que hacer un paquete con Eclipse simplificado (ya que la funcionalidad excesiva los confundirá) con solo estos complementos y espero que no arruinen algo cuando lo instales. – andri

0

El proyecto CAL10N está destinado a tratar este problema. Se basa en paquetes de recursos al agregar primitivas de verificación. También es bastante fácil de usar.

3

Netbeans tiene un editor de propiedades de Java realmente excelente que le muestra cada una de las configuraciones paralelas. Puede ver fácilmente qué propiedades están ausentes para diferentes idiomas.

+0

Dado que Jinto no se ha actualizado y funciona [MultiProperties] (http://code.google.com/a/eclipselabs.org/p/multiproperties/), pero usa XML personalizado, NetBeans parece ser la mejor opción, incluso para Usuarios de Eclipse –

1

a veces las personas se olvidan de traducir nuevas cadenas y, a veces, las nuevas cadenas no se agregan a todos los archivos de idiomas, por lo que los pequeños errores se solucionan muy fácilmente.

Puedo usar un enfoque ligeramente diferente en el sentido de que envíe archivos .properties que contienen las cadenas localizadas existentes se fusionaron con las nuevas cadenas sin traducir en el orden que yo los quiero de vuelta.

Las nuevas cadenas están marcadas con caracteres de "pseudo-traducción", por lo que las cadenas sin traducir son fáciles de encontrar con una simple búsqueda de texto.

Los traductores rara vez pierden propiedades u olvidan traducir cadenas. El error más común es olvidar eliminar los caracteres de pseudotraducción de las cadenas recién traducidas. La comprobación de diferencias antes de volver a asignar las nuevas traducciones al sistema de control de revisiones es muy buena para detectar estos errores.

Este sistema funciona muy bien, y ahora que es semiautomático, lleva aproximadamente una hora realizar cada actualización de localización en lugar de los 1 o 2 días que solía llevarlo cuando el proceso era completamente manual.

Escribí mi propia herramienta para generar los archivos fusionados y hacer una comparación tripartita entre los nuevos maestros, los viejos archivos localizados y los archivos fusionados recientemente generados, pero cualquier herramienta que combine cambios de la misma manera funcionaría con este proceso.

3

Para importar, administrar e incluso solicitar traducciones para idiomas para los que no tiene traductores internos, myGengo's String (http://mygengo.com/string/about) es una solución hospedada gratuita. Admite la importación de varios archivos de idioma para una variedad de plataformas. (Descripción completa: soy cofundador de myGengo)

+0

Su herramienta se ve muy bien. ¿Hay algún proceso recomendado o incluso implementado sobre cómo vincularse con el control de versiones? Quiero que otros traduzcan mis archivos, pero también tengo que mantener los resultados finales en el control de la versión. – Lunikon

+0

+1 en esa, ¿alguna acción de flujo de trabajo? –

1

He estado usando JRC Editor para administrar los paquetes de recursos. Resaltará las claves que faltan valores como se muestra en el siguiente screen shot.

También le permite trabajar con los paquetes usando el lenguaje nativo (por lo tanto, amigable para el usuario final) y convertirá los caracteres en "\ uxxx" equivalente detrás de las escenas.

+0

Podría ser interesante, pero ¿viene para cualquier sistema operativo además de Windows 3.1? –

3

Incluso si esto está fuera del ámbito temporal de su creador original:

i18nBinder

es una tarea Ant para la conversión de archivos de propiedades a un archivo de Excel XLS.

Las configuraciones regionales se colocan en columnas para cada clave (fila).

A continuación, escribe los cambios en el archivo xls de nuevo en los archivos originales. Eso es bastante útil y ya que está usando Excel para editar, todo el mundo está familiarizado con eso.

Saludos

0

la respuesta es un poco tarde, pero para referencia futura también hay Tongue-Tied. Es una aplicación web de código abierto para administrar recursos estáticos y traducciones. Las traducciones se pueden ingresar a través de la interfaz web. Es compatible con la importación/exportación de muchos formatos como archivos de propiedades java, archivos Excel, csv, etc. También tiene un pequeño flujo de trabajo incorporado si es necesario.

Descargo de responsabilidad: Soy el líder del proyecto.

5

estamos usando https://webtranslateit.com/ como un servicio alojado.

Nuestro servidor de integración continua carga nuestro archivo de propiedades Java (inglés) cada vez que hay cambios. Los usuarios de los diferentes idiomas pueden entonces iniciar sesión y actualizar sus traducciones.

Hay una buena API que nos permitió obtener traducciones "sobre la marcha" para nuestra aplicación web, pero esta es una solución interna solo por el momento.

Cuando hay un lanzamiento, descargamos los archivos, los combinamos con nuestra aplicación y la implementamos.

La solución resalta lo que se traduce, sin traducir, necesita verificación, ofrece una memoria de traducción e integración, es decir, a Google Translate.

Recuerdos, Alexander.

2

¿Qué hay de localizedproperties Eclipse plugin? Es similar a Jinto, pero admite la versión de Eclipse tan alta como 3.6.

-1

Guau, me sorprende lo loco que es que las personas no exploraron la importación obvia en Excel.

Vaya a Excel -> importar -> seleccione el archivo de propiedades (Seleccione todos los archivos en tipo de archivo abierto).

Le preguntará si desea delimitar las columnas, marque esa opción.

En la siguiente pantalla del proceso de importación, sería preguntar qué tipo de delimitador que desea, seleccione otra y poner "=" en la caja (sin las comillas)

Seleccionar el siguiente y listo. Tienes una hoja de Excel con las propiedades listas para usar.

+0

¿Qué tiene que ver la pregunta con Excel? –

+1

Esto causaría muchos problemas, comenzando con la cuestión de cómo manejar las comillas después de la primera. Luego hay escapes Unicode. Y probablemente algunos otros. –

+1

Esto suena bien, pero creo que tendrás problemas con los Unicodes. Y qué tal exportar el archivo de propiedades nuevamente. – OblongZebra

0

me trataron Everit - i18n Props XLS Converter y hace el trabajo.

Puede especificar la ubicación de sus .properties que contienen las traducciones y obtendrá un .xls lleno con todos los valores contenidos en ellos.

En este momento puede enviar los xls a sus traductores que lo llenarán con las traducciones correctas y luego lo convertirá a .properties para usar en su proyecto de Java.

El proyecto está alojado en github y debe construirse utilizando maven y jdk8.

Cuestiones relacionadas