2009-08-13 28 views
5

Estoy escribiendo un programa use jsp y java, ¿cómo puedo usar archivos de propiedades para soportar múltiples idiomas? y, por cierto, siempre hay algo como \ u4345, ¿Qué es esto? ¿Cómo vienen?¿Cómo manejar varios idiomas en Java?

+0

¿Qué tipo de marco utilizas? la mayoría de los frameworks como struts, tapices, etc. son compatibles con i18n, por lo que solo debes verificarlos. – nightingale2k1

Respuesta

14

Para los múltiples idiomas, echa un vistazo a la clase ResourceBundle.

Sobre el \u4345, este es uno de los rincones oscuros de legado y muy molestos de Java. Los archivos de propiedades deben estar en ASCII, de modo que todos los caracteres que no sean ASCII necesiten codificarse como \uxxxx (su valor Unicode). Puede convertir un archivo para usar esta codificación con el native2ascii command line tool. Si está utilizando un IDE o una herramienta de compilación, debe haber una opción para invocar esto automáticamente.

Si el archivo de propiedades es algo que se tiene un control total sobre sí mismo, se puede partir de java6 también utilizan UTF-8 (o cualquier otro juego de caracteres) directamente en el archivo de propiedades, y specify that encoding cuando coloca:

// new in Java6 
props.load(new InputStreamReader(new FileInputStream(file), 'UTF-8')); 

una vez más, esto sólo funciona si carga las propiedades de ti mismo, no se si alguien lo hace, como un ResourceBundle (utilizado para la internacionalización).

+0

Una publicación de blog personal que describe cómo usar ResourceBundles: http://tshikatshikaaa.blogspot.nl/2012/11/introduction-to-java-internationalization.html – JVerstry

1

El Java tutorial en i18n ya se ha mencionado por Pedro. Si está compilando JSPs probablemente quiera mirar el JSTL que básicamente le permite usar la funcionalidad de ResourceBundle a través de etiquetas JSP.

Cuestiones relacionadas