java-- i18n internacionalización

1. Introducción Java internacionalización

Ya que están obligados a utilizar el lenguaje Java como un entorno multiplataforma en una variedad de idiomas, con el fin de resolver este problema de Java nos proporciona un ResourceBundle clase de herramienta, ayuda a lograr la internacionalización de Java, la idea central es que los diferentes el lenguaje proporciona un archivo de recursos diferentes.

2. Java internacionalización de paso

(1) curso es escribir a la internacionalización del programa principal.

(2) definir un archivo de recursos que define los archivos de recursos de atención a cumplir con ciertas especificaciones, las especificaciones son las siguientes: Si omitimos el nombre de archivo del archivo de recursos message.properties nombre, el nombre de archivo de recursos que corresponden a otros idiomas es MESSAGE_ código de idioma _ .properties CÓDIGOPAÍS Por ejemplo: nuestro código de idioma chino idioma es zH, el código de país es CN, por lo que el nombre de archivo de recursos chino simplificado es: message_zh_CN.properties, código de idioma Inglés está en, Estados Unidos es el código de país Estados Unidos, por lo que el archivo de recursos de EE.UU. Inglés es: message_en_US.properties.

(3) para obtener los archivos de recursos apropiados entorno de software basada

(4) para obtener el valor correspondiente en el archivo de recursos Key adquirida.

3. Ejemplos (Tenga en cuenta que el archivo de recursos debe ser colocado en el directorio raíz de la ruta de clase)

(1) La principal ParamFormat.java programa

Importación org.springframework.util.StringUtils; 

Importación java.text.MessageFormat;
 Importación java.util.Locale;
 Importación java.util.ResourceBundle; 

/ ** 
 * demostración internacional de Java 
 * 
 * @author Abu
  * / 
público  de clase I18nUtil {
     pública  estática cadena getI18nMessage (lengua String, String clave) {
         // establecer un código de país idioma personalizado 
        locale la configuración regional = nula ;
         SI (StringUtils.isEmpty (lengua)) { 
            la configuración regional = Locale.getDefault (); 
        } else{ 
            La configuración regional = new new Locale (Idioma); 
        } 
        // obtener el archivo de recursos 
        ResourceBundle la ResourceBundle.getBundle RB = ( "Mensaje" , la configuración regional);
         // obtener el correspondiente valor de la clave 
        de retorno rb.getString (clave); 
    } 

    pública  estática Cadena getI18nMessage ( cadena lenguaje, Key String, Object [] los params) {
         // establecer un código de país idioma personalizado 
        locale la configuración regional = nula ;
         SI (StringUtils.isEmpty (lengua)) { 
            la configuración regional = Locale.getDefault (); 
        } else { 
            la configuración regional= Nuevo nuevo local (idioma); 
        } 
        // obtener el archivo de recursos 
        ResourceBundle la ResourceBundle.getBundle RB = ( "Mensaje" , la configuración regional);
         // obtener el valor de la clave correspondiente 
        valor String = rb.getString (clave);
         // parámetros de formato, devuelve el formato de cadena 
        de retorno MessageFormat.format (valor, los params); 
    } 
}

2) Los message.properties archivo de recursos predeterminado (usados ​​aquí native2ascii los chinos convertidos en ISO-8859-1 codificación.)

Hace transcodificación:

saludo = Hola, {0}. 
accountRegesitFailure = registro de la cuenta fallaron!

Después de transcodificación (native2ascii -encoding gb2312 message_zh_pre.properties message_zh_CN.properties):

saludo = \ u4f60 \ u597d, {0}. 
accountRegesitFailure = \ u8d26 \ u53f7 \ u6ce8 \ u518c \ u5931 \ u8d25 \ uff01

(3) Archivo de recursos message_en_US.properties inglés americano

= saludo de bienvenida, {0}. 
accountRegesitFailure = fracaso de cuenta regesit.

4. Resumen

De hecho, esta es la esencia de la i18n Java y algunos otros marcos internacionales, tales como los puntales básicos, telaraña, etc., son ciertas.

Supongo que te gusta

Origin www.cnblogs.com/jvStarBlog/p/12509961.html
Recomendado
Clasificación