ruta relativa manejo leer example datos conexion archivos archivo agregar java ide resources properties editor

relativa - properties java 8



Buen editor de archivos de propiedades Java (9)

Trabajo en un proyecto Java de código abierto y tenemos muchos archivos de propiedades de recursos que contienen recursos de mensajes localizables. Esos archivos son traducidos por voluntarios a más de 20 idiomas, y soy un desarrollador que edita principalmente el código.

En Java, los archivos de recursos para diferentes entornos locales se agrupan por una convención de nomenclatura. Por ejemplo, si el recurso predeterminado (normalmente inglés) es "foo.properties", el recurso japonés está en "foo_ja.properties", el francés es "foo_fr.properties", etc. Por el bien de esta pregunta, llamemos a este grupo un "grupo de recursos".

Ahora, de vez en cuando, necesito refactorizar esos archivos de recursos. Además, necesito la herramienta para admitir los conceptos básicos de los archivos de propiedades. Con todo, mi lista de requisitos es algo como:

  1. Renombrar el nombre de la clave de propiedad, y quiero que una herramienta cambie el nombre de todas las claves en todos los archivos del mismo grupo, sin que yo las revise individualmente.
  2. Mueva una propiedad de un grupo de recursos a otro, y quiero que una herramienta lo haga para cada archivo de recursos en el grupo.
  3. En Java, los archivos de recursos están en la codificación ISO-8859-1 y no en la codificación predeterminada de la plataforma.
  4. No quiero ver / uXXXX al editar / examinar archivos de propiedades, pero sí espero que la herramienta los preserve.
  5. No quiero que la herramienta reorganice el orden de las propiedades en el archivo de recursos, ni ensucie los comentarios. Espero que la herramienta los preserve.
  6. Quiero que la herramienta maneje otros detalles de sintaxis de los archivos de recursos, como el texto de líneas múltiples.

Lamentablemente, no encuentro ninguna buena herramienta que se ajuste a estos criterios. Principalmente soy un usuario de IntelliJ IDEA, pero no es el número 2 ni el 3. El editor de archivos de propiedades incorporado de Eclipse es aún peor, y AFAICT no lo hace # 1, # 2, # 4. De hecho, carece de la vista que corta los archivos de recursos en el mismo grupo. NetBeans es igualmente primitivo. Lo mismo ocurre con NetBeans, aunque sí con el n. ° 4.

¿Alguien sabe de una buena herramienta que se ajuste a la factura?


Echa un vistazo a Multiproperties , si todavía estás buscando un complemento así: mira aquí

Sólo falta el requisito # 6.



En este punto, supongo que la respuesta es que no hay un buen editor de archivos de propiedades en Java que coincida con los criterios enumerados. prbeditor sonaba prometedor pero se ha ido, IntelliJ IDEA se ve bien en el papel pero está sufriendo un error crítico, y luego los plugins de Eclipse son algo primitivos.


Esto es viejo pero es una buena herramienta.

Editor del JRC: http://zaval.org/products/jrc-editor/ todo lo que hace excepto volver a ordenar las claves (ordenarlas) que pueden no ser lo que usted desea. (Puede ser que esta característica se pueda desactivar)

Aunque podría no ser bueno reordenar las claves, me pareció muy útil cuando muchas personas trabajan en un paquete de recursos. Las herramientas de control de origen, como SVN, tienen una mejor oportunidad de combinar los paquetes de recursos ordenados.


He estado usando prbeditor por un tiempo y creo que puede manejar los requisitos que tiene:

  1. Se puede hacer cambiando la columna clave en la vista de tabla.
  2. Puede hacerse copiando la columna de clave que realmente copiará la clave y todos los valores en los diferentes idiomas y luego pegarla en una vista de tabla diferente, que insertará la clave y los valores en las diferentes columnas de la vista de tabla.
  3. Los caracteres se pueden escapar usando / uXXXX, no estoy seguro de si lo hace solo para caracteres que no sean ISO-8591-1 o incluso para todos los caracteres que no sean US-ASCII.
  4. / uXXXX se decodifica para el editor y se vuelve a escribir en el archivo como / uXXXX.
  5. El orden de las propiedades no cambia, no estoy seguro de cómo maneja los comentarios.
  6. Puede ingresar texto multilínea y escribirá correctamente en el archivo de propiedades.

Resulta que IntelliJ debería poder hacer el # 3 (excepto que no funciona en la versión actual debido a un error ). Así que eso me deja con el # 2.

Por el momento (y para el problema en cuestión) decidí que armar un script Groovy es más rápido que probar esas herramientas:

#!/usr/bin/env groovy // base name of the resource group to move a property from File base = new File(args[0]) // key name of the property to move String from = args[1] // base name of the resource group to move the property to File dst = new File(args[2]) // name of the new property after move String to = args[3] /* TODO: support multi-line insert the text in a better place, in the sort order */ base.parentFile.eachFileMatch(~"${base.name}(_.*)?//.properties") { f -> def l = f.name.substring(base.name.length()) println "${f}" def tmp = new File(f.path+".tmp") // delete this property from the source, and remember it def dropped = null; tmp.withWriter("iso-8859-1") { w -> f.filterLine(w,"iso-8859-1") { line -> if (line.startsWith(from)) { dropped = line; return false; } else { return true; } } } tmp.renameTo(f) if (dropped==null) return; // nothing to copy to // append f = new File(dst.path+l) tmp = new File(f.path+".tmp") println "-> ${f}" existing = f.bytes needsLF = (existing[existing.length-1]!=''/n'') f.withWriterAppend("iso-8859-1") { w -> if (needsLF) w.write(''/n'') w.write(to+dropped.substring(from.length())) w.write(''/n'') } }

Este script es un hack y no comprende la sintaxis del archivo de propiedades, por lo que no es muy confiable. Pero VCS puede compensar esa desventaja al permitirle ver exactamente lo que hizo el guión.

Todavía espero encontrar una buena herramienta para ser más productivo en una carrera más larga. ¡Por favor, sigan respondiendo!


Usé el plugin para eclipse. Creo que este: http://sourceforge.net/projects/eclipse-rbe/

Está bien, permite agregar y renombrar propiedades, muestra advertencias si la propiedad no está traducida a todos los idiomas admitidos, etc.

Su desventaja es que siempre utiliza la notación `/ uXXXX ''para caracteres Unicode. Por lo tanto, debe usar este complemento para leer los archivos creados. Hace la búsqueda muy difícil. Y no sé si es posible configurarlo para crear paquetes codificados en UTF-8.


echa un vistazo a j18n http://j18n.nomagicsoftware.com Hace lo que quieres e introduce herencia de recursos y también proporciona control de versiones para todas las ediciones