i18n Java: utilizar un descriptor de acceso ResourceBundle por paquete, o uno para todo el proyecto?
-
20-09-2019 - |
Pregunta
No sé nada acerca de la internacionalización.
Tengo un proyecto con varios paquetes. Estoy utilizando asistente integrado "Externalizar Cuerdas" de Eclipse para extraer constantes de cadena en mis clases a un archivo de propiedades y reemplazar esas cadenas con llamadas a un descriptor de acceso estático. Así que en lugar de
System.out.println("Hello, world!");
termino con
System.out.println(Messages.getString("MyKey"));
y una clase de utilidad Messages
en cada paquete (que proporciona un método getString
estático para obtener la cadena deseada de un ResourceBundle [en este caso un archivo .properties
]). ¿Es mejor tener una clase Messages
en cada paquete, o tener una sola clase Messages
para todo el proyecto?
Solución
Estoy a favor de un archivo de localización global. Tendrá duplicados de las llaves ( "OK", "Cancelar") que requeriría la duplicación o la anidación, y la interfaz con la gente fuera de localización es más fácil si se consolidan los recursos.
Otros consejos
Me gustaría mantener una por paquete. Este / refactorización / unidad de pruebas de mantenimiento manera es mucho más fácil.
Además, no existen dependencias globales en un único archivo.