apuntes:localizacion
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
Next revision | |||
— | apuntes:localizacion [2021/03/10 13:12] – created Santiago Faci | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Localización ====== | ||
+ | \section{¿Qué es la localización? | ||
+ | |||
+ | La localización, | ||
+ | aplicación se adapta a un idioma y localización. | ||
+ | |||
+ | Por lo general se suelen adaptar, a un idioma y localización concretas, datos como fechas y la presentación de los números. | ||
+ | |||
+ | En Java, se utiliza la clase \emph{Locale} para proporcionar esa capacidad de adaptación a nuestras aplicaciones. | ||
+ | |||
+ | Podemos conocer la localización que, por defecto, tenga asignado nuestro equipo: | ||
+ | |||
+ | \begin{lstlisting}[language=java] | ||
+ | Locale locale = Locale.getDefault(); | ||
+ | System.out.println(locale.getCountry()); | ||
+ | System.out.println(locale.getDisplayCountry()); | ||
+ | System.out.println(locale.getLanguage()); | ||
+ | System.out.println(locale.getDisplayLanguage()); | ||
+ | \end{lstlisting} | ||
+ | |||
+ | También podemos definir la localización para una aplicación, | ||
+ | idioma y el páis: | ||
+ | |||
+ | \begin{lstlisting}[language=java] | ||
+ | Locale locale = new Locale(" | ||
+ | Locale locale = new Locale(" | ||
+ | \end{lstlisting} | ||
+ | |||
+ | Asi, podemos utilizar la localización, | ||
+ | aplicación. En función del idioma escogido instanciaremos el objeto \emph{Locale} acorde con esas preferencias y, más adelante, podremos | ||
+ | utilizar dicho objeto para representar las fechas como corresponda: | ||
+ | |||
+ | \begin{lstlisting}[language=java] | ||
+ | Locale locale = new Locale(" | ||
+ | DayOfWeek dia = LocalDate.now().getDayOfWeek(); | ||
+ | System.out.println(dia.getDisplayName(TextStyle.FULL, | ||
+ | \end{lstlisting} | ||
+ | |||
+ | \subsection{Internacionalización} | ||
+ | |||
+ | La localización está relacionada con el concepto de internacionalización, | ||
+ | localización escogida. La API de Java, a partir de la clase \emph{ResourceBundle} permite definir unos ficheros de propiedades con los | ||
+ | textos en diferentes idiomas y regiones, de forma que, en función de la localización del usuario, se pueden adaptar el idioma en que se | ||
+ | muestra cualquier información en la aplicación: | ||
+ | |||
+ | Se puede definir un fichero con los mensajes para un idioma y región | ||
+ | \begin{lstlisting}[language=java] | ||
+ | # Fichero textos_es_ES.properties | ||
+ | hola = hola | ||
+ | adios = adios | ||
+ | \end{lstlisting} | ||
+ | |||
+ | También para otro idioma y región | ||
+ | \begin{lstlisting}[language=java] | ||
+ | # Fichero textos_en_UK.properties | ||
+ | hola = hi | ||
+ | adios = bye | ||
+ | \end{lstlisting} | ||
+ | |||
+ | Quizás nos interese definirlo para todo un idioma, independientemente de la región | ||
+ | \begin{lstlisting}[language=java] | ||
+ | # Fichero textos_es.properties | ||
+ | hola = hola | ||
+ | adios = adios | ||
+ | \end{lstlisting} | ||
+ | |||
+ | E incluso definir cómo queremos que se muestran los mensajes si la localización del usuario no está definida de forma particular, lo que | ||
+ | sería la opción por defecto: | ||
+ | \begin{lstlisting}[language=java] | ||
+ | # Fichero textos.properties | ||
+ | hola = hi | ||
+ | adios = bye | ||
+ | \end{lstlisting} | ||
+ | |||
+ | Finalmente, a la hora de mostrar mensajes al usuario, lo haríamos a través del objeto \emph{ResourceBundle}, | ||
+ | mejor se adapte a la localización definida en la aplicación: | ||
+ | |||
+ | \begin{lstlisting}[language=java] | ||
+ | Locale locale = new Locale(" | ||
+ | . . . | ||
+ | ResourceBundle res = ResourceBundle.getBundle(" | ||
+ | System.out.println(res.getString(" | ||
+ | \end{lstlisting} |
apuntes/localizacion.txt · Last modified: 2023/05/28 10:26 by Santiago Faci