[Java] internacionalización

fondo

  • Un programa de usuario se puede utilizar de forma simultánea en diferentes países, puede reducir en gran medida los costes de desarrollo y mantenimiento del programa
  • Google, Youtube, Facebook, Twitter, Ins
  • En primer lugar, determinar la estructura del núcleo del proyecto y que el fondo de la industria, después de la finalización de la actividad principal a considerar internacional
  • El idioma no está en su código, en un archivo de configuración
  • Seleccione el usuario en función de sus perfiles, de acuerdo con el usuario para lograr la conmutación dinámica idiomas
  • Tiene que ser diferente en los distintos países de la información de configuración de texto, los datos relevantes se carga el archivo de configuración cuando el programa se ejecuta
  • Como llegar al país dinámica actual y el idioma en el que el usuario

 

 clase locale

  • conmutación nacional y el lenguaje de clase puede ser controlado: java.util.Locale
    • public static final de Locale CHINA: región de China
    • public static final de configuración regional de Estados Unidos: región de Estados Unidos
    • pública local (idioma de cuerda, país String): Establecer el lenguaje y la ciudad
    • public static Locale getDefault (): Obtener el sistema actual en el que el medio ambiente
    • objeto de la clase Locale se instancia, la necesidad de un lenguaje de codificación y ciudades
    • IE> Herramientas> Opciones de Internet> Apariencia> idioma> Establecer preferencias de idioma> Agregar idioma (hace Win7) 

Y el código de área de la adquisición del lenguaje

1  público  clase Locale_Demo {
 2      públicas  estáticas  void principales (String [] args) {
 3          Locale loc = Locale.CHINA;
4          System.out.println (loc);
5      }
 6 }
Ver código

Región e idioma

1  público  clase Locale_Demo {
 2      público  estáticas  void principales (String [] args) {
 3          Locale loc = nuevo Locale ( "zh", "CN" );
4          System.out.println (loc);
5      }
 6 }
Ver código

Obtener la configuración regional predeterminada actual y el lenguaje

1  público  clase Locale_Demo {
 2      públicas  estáticas  void principales (String [] args) {
 3          Locale loc = Locale.getDefault ();
4          System.out.println (loc);
5      }
 6 }
Ver código

 

clase ResourceBundle

  • Locale lograr posicionamiento, archivos de recursos para lograr información de texto almacenada
  • Internacional de texto almacenados en el archivo de propiedades (o archivo de recursos)
    • archivo de propiedades (o archivo de recursos) deben guardarse en "* .properties" sufijo de archivo
    • Cuando un archivo de recursos se guarda en forma de clase de almacenamiento, en el CLASSPATH (considere el paquete)
    • Cuando la localización de los archivos de recursos, todo el contenido con "clave = valor" en forma de declaración
    • los comentarios del archivo de recursos con el "#" al principio
    • archivos de recursos de CLASSPATH en el directorio pueden ser identificados, y puede establecer el nombre del paquete
    • archivos de recursos Eclipse muestran en chino, JDK 1.8 antes de que la necesidad de transcodificación, la necesidad de configurar enchufe independiente adicional (JDK 1.9 y por defecto UTF-8)
    • IDEA utilizando codificación UTF-8
    • No hay espacio antes y después del signo igual
  • la lectura de recursos
    • java.util.ResourceBundle: poder leer con el recurso especificado bajo CLASSPATH
    • public static final de ResourceBundle getBundle (String baseName): Obtiene el objeto de recursos especificado
    • public static final de ResourceBundle getBundle (String baseName, Locale Idioma): acceso a los recursos en el área de destino designada
    • getString final String pública (String key): leer el valor de la clave de acuerdo con el
    • Entorno en el que la lengua es el chino, si no hay configuración de configuración regional, los mensajes de texto por defecto cargado contenido chino (zh_CN) de recursos para leer, si es necesario ser asignado por Locale
    • Si encuentra que la clave especificada no existe, se encuentra automáticamente el archivo de recursos comunes, si la palabra clave no es un lenguaje específico se cargará el archivo de información de recursos al leer los datos

1  importación java.util.Locale;
2  importación java.util.ResourceBundle;
3      
4  público  clase Locale_Demo {
 5      públicas  estáticas  void principales (String [] args) {
 6          Locale loc = Locale.US;
7  
8          ResourceBundle resouceBundle = ResourceBundle.getBundle ( "a.Message" , loc);
9          System.out.println (resouceBundle.getString ( "welcome.info" ));
10          System.out.println (resouceBundle.getString ( "teacher.info" ));
11      }
 12 }
Ver código

 

formato de texto

  • procesamiento de texto dinámico
  • Modificar el archivo de recursos
    • login.info = éxito, bienvenido {0}, acceda {1} Sitio Web.
  • java.text.MessageFormat
1  importación java.text.MessageFormat;
2  importación java.util.Locale;
3  importación java.util.ResourceBundle;
4      
5  público  clase Locale_Demo {
 6      públicas  estáticas  void principales (String [] args) {
 7          Locale loc = Locale.US;
8  
9          ResourceBundle ResourceBundle = ResourceBundle.getBundle ( "a.Message" , loc);
10          Valor de la cadena = resourceBundle.getString ( "login.info" );
11          System.out.println (MessageFormat.format (valor, "AAA", "bbb" ));
12     }
 13 }
Ver código

 

Formato digital

  • Por clase NumberFormat internacional para la visualización de datos
  • java.text.NumberFormat
    • public static final de NumberFormat getInstance (): Obtener la instancia NumberFormat una Localidad por defecto
    • public static final de NumberFormat getPercentInstance (Locale inLocale): para dar un ejemplo específico de Locale NumberFormat
    • public static final de NumberFormat getPercentInstance (): para dar un porcentaje calculado de la instancia predeterminada Locale
    • public static final de NumberFormat getPercentInstance (Locale inLocale): para dar un ejemplo para calcular el porcentaje de la configuración regional especificada
    • public static final de NumberFormat getCurrencyInstance (): Obtener la instancia Localidad por defecto de la moneda
    • public static final de NumberFormat getCurrencyInstance (Locale localidad por defecto): Obtiene dinero ejemplo de la configuración regional especificada
  • java.text.DecimalFormat: formato por defecto, cada uno de los tres más ""
  • Directamente a través del mal de instancias sub-clase, el mejor método consiste en sustituir el código de clase NumberFormat anterior proporciona un método estático del proceso interno se completa
  • Si sólo captura el formato por defecto formato digital NumberFormat clase de objeto, apoyándose directamente NumberFormat clase se puede completar, pero si se va a usar algunos métodos especiales, debe ser dispuestos clase DecimalFormat instancia de objeto
  • Hay algunos números importantes etiquetas de formato en la clase DecimalFormat
  • Pocos desarrolladores rara vez necesitan un tratamiento especial, porque se utilizó el método NumberFormat getInstance () en el formato de formato dado que ya es aceptado internacionalmente

objetos digitales

1  importación java.math.RoundingMode;
2  importación java.text.DecimalFormat;
3  importación java.text.NumberFormat;
4  
5  público  clase Locale_Demo {
 6      pública  estáticas  void principales (String [] args) {
 7          DecimalFormat NumberFormat = (DecimalFormat) NumberFormat.getInstance ();
8          numberFormat.applyPattern ( "####, ####, #### 000."); // 保留三位小数
9          numberFormat.setRoundingMode (RoundingMode.DOWN); // 不进位
10         numberFormat.setPositivePrefix ( "agua de los ingresos del año:"); // aumentar la parte delantera explicó 
. 11          (. 5) numberFormat.setMinimumFractionDigits;   // Reservados Cinco dígitos decimales 
12 es          System.out.println (NumberFormat.format (2,826,548.264785 ));
 13 es      }
 14 }
Ver código

El porcentaje de objetivo

1  importación java.text.DecimalFormat;
2  importación java.text.NumberFormat;
3  
4  público  clase Locale_Demo {
 5      público  estáticas  void principales (String [] args) {
 6          NumberFormat NumberFormat = (DecimalFormat) NumberFormat.getPercentInstance ();
7          System.out.println (numberFormat.format (0,9854623 ));
8          // 自定义处理,强制向下转型
9          DecimalFormat DecimalFormat = (DecimalFormat) NumberFormat;
10          decimalFormat.setMinimumFractionDigits (5 );
11         System.out.println (decimalFormat.format (0,9878546 ));
12      }
 13 }
Ver código

Objetos de divisas

1  importación java.text.NumberFormat;
2  importación java.util.Locale;
3  
4  público  clase Locale_Demo {
 5      públicas  estáticas  void principales (String [] args) {
 6          NumberFormat NumberFormat = NumberFormat.getCurrencyInstance (Locale.CHINA);
7          System.out.println (numberFormat.format (789.46 ));
8      }
 9 }
Ver código

 

referencia

https://zhidao.baidu.com/question/414732825.html

 

Supongo que te gusta

Origin www.cnblogs.com/cxc1357/p/12452666.html
Recomendado
Clasificación