El archivo Properties visto en un post anterior (Crear y Leer archivos Properties), puede servirnos tambien para crear aplicaciones multilenguaje, por ejemplo guardar en cada archivo la estructura del idioma que utilizamos y en otros archivos el lenguaje al que deseamos traducir nuestra aplicacion, osea:
Creamos una interfaz en Netbeans e identificamos todos los objetos a los cuales cambiaremos la propiedad TEXT, marcados con un punto rojo.
Creamos los archivos .Properties para cada lenguaje.
Para el idioma español podemos tener:
# Idioma español # # @web http://jc-mouse.blogspot.com/ # @author Mouse # #titulo aplicacion titulo=Aplicación Multilenguaje !Datos personales titulo_datos=Datos Personales nombre=Nombre: Apellidos=Apellidos: mail=Correo Electronico: dir=Dirección: fono=Telefono: #salir salir=Salir ! menu archivo=Archivo nuevo=Nuevo abrir=Abrir... guardar=Guardar como... !Salir herramientas=Herramientas es=Español en=Ingles ayuda=Ayuda enlinea=Ayuda en linea... acerca=Acerca de...
Y para el ingles:
# Idioma Ingles # # @web http://jc-mouse.blogspot.com/ # @author Mouse # #titulo aplicacion titulo=Multilingual Application !Datos personales titulo_datos=Personal Data nombre=First Name: Apellidos=Last Name: mail=Your Email: dir=Address: fono=Phone: #salir salir=Exit ! menu archivo=File nuevo=New abrir=Open... guardar=Save as... !Salir herramientas=Tools es=Spanish en=English ayuda=Help enlinea=Online Help... acerca=About..
Como puede verse, la cantidad de elementos en ambos archivos propeties, es la misma, asi tambien el KEY para cada parametro tambien es la misma, solo cambia el contenido de estos, uno en español y otro en ingles.
Nos creamos una clase para cargar estos archivos:
import java.io.IOException; import java.util.Properties; /** * @web http://jc-mouse.blogspot.com/ * @author Mouse */ public class jcProperties extends Properties{ public jcProperties(String idioma){ if(idioma.equals("ES")){//español getProperties("_ES.properties"); }else if(idioma.equals("EN")){//Ingles getProperties("_EN.properties"); }else{//sino por default idioma español getProperties("ES"); } } /* se leen las propiedades */ private void getProperties(String idioma) { try { this.load( getClass().getResourceAsStream(idioma) ); } catch (IOException ex) { } } }
y solo resta utilizar esta clase en el JFrame
Codigo fuente del proyecto en Netbeans 6.9
Me sirvio mucho, gracias!!
ResponderEliminarSi usted está interesado en crear aplicaciones multiidioma, yo recomiendo altamente esta rápida y intuitiva herramienta en línea para la localización de software: https://poeditor.com/
ResponderEliminar