Resumen de aprendizaje de Java: 40 (internacionalización)

Internacionalizacion

El llamado programa internacionalizado significa que el mismo conjunto de códigos de programa se puede usar en diferentes países, y la información de texto correspondiente del país se puede mostrar automáticamente en el proyecto de acuerdo con el país de su aplicación.

Utilice la clase Locale para definir la configuración regional.

Métodos comunes de la clase Locale.

No. Método Tipo Descripción
1 Locale público (idioma de cadena, país de cadena) Estructura Establecer idioma y código de país
2 Configuración regional pública estática getDefault () Ordinario Obtener el objeto de clase Locale en la configuración regional actual

Ejemplo: objeto de clase Locale de salida

package Project.Study.LocaleClass;

import java.util.Locale;

public class Test1 {
    public static void main(String[]args){
        Locale locale=Locale.getDefault();
        System.out.println(locale);
    }
}
//结果:
//zh_CN

Podemos ver que la parte de salida "zh_CN" consta de dos partes, donde "zh" indica que el idioma utilizado actualmente es el chino y "CN" indica que el país actual es China.

Use ResourceBundle para leer archivos

Los archivos de recursos generalmente guardan información de texto en forma de "clave = valor", de modo que al leer la información, los datos del valor correspondiente se pueden obtener de acuerdo con la clave especificada, pero el nombre del archivo de recursos es obligatorio y debe ser " * .properties "como el sufijo del archivo.

Métodos comunes de la clase ResourceBundle

No. Método Tipo Descripción
1 public static final ResourceBundle getBundle (String baseName) Ordinario Obtenga objetos de recursos de acuerdo con la configuración regional predeterminada actual
2 público estático final ResourceBundle getBundle (String baseName, Locale locale) Ordinario Adquirir objetos de recursos de acuerdo con la configuración regional especificada
3 Cadena pública final getString (clave de cadena) Ordinario Obtenga los datos del valor correspondiente de acuerdo con la clave

Ejemplo: crear un archivo "* .properties" en IDEA

Como se muestra en la figura, haga clic con el botón derecho e
Inserte la descripción de la imagen aquí
ingrese el nombre del archivo creado, haga clic en Aceptar
Inserte la descripción de la imagen aquí
, se crea un archivo "* .properties" y
Inserte la descripción de la imagen aquí
luego escriba información en el archivo
Inserte la descripción de la imagen aquí
Ejemplo: leer el archivo de recursos

package Project.Study.LocaleClass;

import java.util.ResourceBundle;

public class Test2 {
    public static void main(String[]args){
    	//访问的时候不用加上后缀,因为默认找到的后缀就是“*.properties”
        ResourceBundle resourceBundle=ResourceBundle.getBundle("Project.Study.LocaleClass.data1");//文件的存放地址
        System.out.println(resourceBundle.getString("hello"));//根据文件中定义的key取得对应的value数据
    }
}
//结果:
//Hello World!!!

Ejemplo: leer datos y establecer contenido dinámicamente

Archivo de recursos
Inserte la descripción de la imagen aquí

package Project.Study.ResourceBundleClass;

import java.text.MessageFormat;
import java.util.ResourceBundle;

public class Test1 {
    public static void main(String[]args){
        //访问的时候不用加上后缀,因为默认找到的后缀就是“*.properties”
        ResourceBundle resourceBundle=ResourceBundle.getBundle("Project.Study.ResourceBundleClass.test1_data");
        System.out.println(MessageFormat.format(resourceBundle.getString("data"),"World","!!!"));//设置两个占位符的内容
    }
}
//结果:
//Hello World!!!

Lectura de múltiples recursos

Con respecto al orden de lectura de
los archivos de recursos: pueden aparecer dos tipos de recursos durante la definición de los archivos de recursos:
1. Recursos públicos (no se establecen códigos de idioma y país)
2. Archivos de recursos de idioma específicos (se establecen códigos de idioma y país)
porque Hay dos tipos de archivos, por lo tanto, al leer, se dará prioridad a los archivos de recursos con códigos de idioma y país específicos, y si no se pueden leer, se leerán los recursos públicos.
Ejemplo: Leer archivo de recursos
Definir archivo de recursos en chino Definir archivo de recursos en
Inserte la descripción de la imagen aquí
inglés (inglés-EE. UU.)
Inserte la descripción de la imagen aquí

package Project.Study.ResourceBundleClass;

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

public class Test2 {
    public static void main(String[]args){
        Locale zhLoc=new Locale("zh","CN");//中国——中文
        Locale enLoc=new Locale("en","US");//英语——美国
        ResourceBundle zhRB=ResourceBundle.getBundle("Project.Study.ResourceBundleClass.Message",zhLoc);//读取中文资源文件
        ResourceBundle enRB=ResourceBundle.getBundle("Project.Study.ResourceBundleClass.Message",enLoc);//读取英文资源文件
        //读取资源内容
        System.out.println(MessageFormat.format(zhRB.getString("data"),"World","!!!"));
        System.out.println(MessageFormat.format(enRB.getString("data"),"World","!!!"));
    }
}
//结果:
//Hello World!!!
//Hi World!!!

Nota: Si no hay suficientes marcadores de posición en el recurso, incluso si los datos correspondientes se configuran al generar, los datos no se generarán; de lo contrario, si el marcador de posición correspondiente se configura en el recurso, pero los datos correspondientes no se configuran al generar El marcador de posición se mostrará intacto, como:
Inserte la descripción de la imagen aquí

49 artículos originales publicados · Me gusta 25 · Visitas 1503

Supongo que te gusta

Origin blog.csdn.net/weixin_45784666/article/details/105447620
Recomendado
Clasificación