La internacionalización (I18N) es el proceso de diseño de aplicaciones web de tal manera que brinda soporte para varios países, varios idiomas y varias monedas automáticamente sin realizar ningún cambio en la aplicación. Se denomina internacionalización (I18N). Se le conoce como I18N porque entre I y N; hay 18 caracteres; por eso I18N. La internacionalización es uno de los poderosos conceptos de Java si está desarrollando una aplicación y desea mostrar mensajes, monedas, fechas, horas, etc., según la región o el idioma específico. En lugar de profundizar en el concepto, primero analicemos algunos temas que serán útiles para comprender los conceptos:
- Internacionalización (I18N): es la tarea de crear un sistema que sea lo suficientemente flexible para funcionar en cualquier entorno.
- Localización (I10N): Es el proceso de hacer que un programa se ejecute durante una ubicación específica.
- Locale: Representa una región geográfica, política o cultural seleccionada. La representación de string de una configuración regional consta de la abreviatura estándar internacional de dos caracteres para el idioma y el país y una variante opcional, separados por caracteres de subrayado (_).
Configuración regional de inicio
- La aplicación web recupera la configuración regional de la solicitud mediante el método getLocale() o permite que el usuario seleccione explícitamente la configuración regional para obtener las strings correctas para un usuario determinado.
- Una operación que necesita una configuración regional para realizar su tarea se denomina sensible a la configuración regional y utiliza la configuración regional para personalizar la información para el usuario.
- No se realiza ninguna verificación de validez una vez que construye un Locale porque un objeto Locale es simplemente un identificador para un vecindario.
java.util.Locale request.getLocale()
Métodos utilizados
- getCountry(): Devuelve el código de país/región en mayúsculas para esta configuración regional en formato ISO3166 de 2 letras.
- getDisplayCountry(): Devuelve el nombre del país de la localidad que es apropiado para mostrar al usuario.
- getLanguage(): Devuelve el código de idioma en minúsculas para esta localidad en formato ISO 639.
- getDisplayLanguage(): devuelve el nombre del idioma de la configuración regional que es apropiado para mostrar al usuario.
- getISO3Country(): Devuelve una abreviatura de tres letras para el país de esta localidad.
- getISO3Language(): Devuelve una abreviatura de tres letras para el idioma de esta configuración regional.
Ejemplo
Este ejemplo muestra cómo se muestra un idioma y un país asociado para una solicitud
Java
import java.io.*; import java.util.Locale; import javax.servlet.*; import javax.servlet.http.*; public class GetLocale extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Get the client's Locale Locale locale = request.getLocale(); String language = locale.getLanguage(); String country = locale.getCountry(); // Set response content type response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "Detecting Locale"; String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor = \"#f0f0f0\">\n" + "<h1 align = \"center\">" + language + "</h1>\n" + "<h2 align = \"center\">" + country + "</h2>\n" + "</body> < / html > " ); } }
Ajustes de idioma
- Un servlet genera una página escrita en un idioma de Europa occidental, como inglés, español, alemán, francés, italiano, holandés, noruego, finlandés o sueco. Nótese la utilización de los caracteres especiales “ñ” y “¡”. Caracteres como estos, aunque escasos en inglés, prevalecen en los idiomas de Europa occidental. Los servlets tienen dos formas de obtener estos caracteres: con entidades de caracteres HTML o secuencias de escape Unicode.
- La capacidad de mostrar secuencias específicas de caracteres en una página HTML como un solo carácter. Las secuencias, denominadas entidades de caracteres, comienzan con un ampersand (&) y terminan con un punto y coma (;). Las entidades de caracteres se pueden nombrar o numerar.
- Unicode Worldwide Escape Sequences es un sistema de codificación de caracteres diseñado para admitir el intercambio, el procesamiento y la visualización de textos escritos en los diversos idiomas del mundo moderno. Además, admite textos clásicos e históricos de los muchos idiomas escritos.
Fechas específicas de la localidad
Puede utilizar la clase java.text.DateFormat y su método estático getDateTimeInstance() para formatear la fecha y la hora específicas de la configuración regional. El siguiente es el ejemplo que muestra cómo dar formato a las fechas específicas de una configuración regional determinada:
Java
import java.io.*; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import javax.servlet.*; import javax.servlet.http.*; public class DateLocale extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); PrintWriter out = response.getWriter(); // Get the client's Locale Locale locale = request.getLocale(); String date = DateFormat .getDateTimeInstance( DateFormat.FULL, DateFormat.SHORT, locale) .format(new Date()); String title = "Locale Specific Dates"; String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor = \"#f0f0f0\">\n" + "<h1 align = \"center\">" + date + "</h1>\n" + "</body> < / html > " ); } }
Publicación traducida automáticamente
Artículo escrito por vikramkj12 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA