Propiedades de Internacionalización/Localización de Idioma

A partir de la versión 3.5.0 del Wrapper, el código fuente está internacionalizado y puede ejecutarse en diferentes idiomas. Para ejecutar su aplicación en otro idioma (siempre que su sistema operativo lo admita), consulte esta página.

NOTA

Los cambios en el valor de estas propiedades no afectarán al Wrapper si se recarga la configuración. Para que los cambios surtan efecto, es necesario reiniciar el Wrapper.

wrapper.lang

Compatibilidad :3.5.0
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Esta propiedad especifica el idioma de salida del Wrapper.

En Windows, el valor debe ser uno de los idiomas instalados. Consulte la lista de idiomas admitidos en el sitio web de Microsoft. Se prefiere la notación corta (etiqueta de idioma) y se puede escribir con un "_" en lugar de un "-" para compatibilidad cruzada con sistemas Unix.

NOTA

El valor "en_UK" se añadió como un alias de "en_GB" (o "en-GB") para que fuera compatible con Unix.

En los sistemas basados en UNIX, el valor debe ser la parte válida "language[_territory]" de una configuración regional instalada.

Para obtener las configuraciones regionales instaladas y disponibles en los sistemas UNIX, ejecute "locale -a".

Ejemplo:
locale -a
C
de_AT.utf8
de_BE.utf8
de_CH.utf8
de_DE.utf8
de_DE@euro
de_DE.iso885915@euro
de_LI.utf8
de_LU.utf8
en_AG
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
ja_JP.eucjp
ja_JP.shiftjis
ja_JP.utf8
POSIX

NOTA

Si no aparece ninguna configuración regional para el idioma deseado en la lista, deberá instalar una antes de usar la función de localización del Wrapper. En Linux, esto se puede hacer con el comando "locale-gen".

Solo necesita configurar la parte "language[_territory]" para esta propiedad. La codificación se establecerá en las propiedades wrapper.lang.windows.encoding o wrapper.lang.unix.encoding.

Ejemplo: (establecer el idioma a japonés)
wrapper.lang=ja_JP

A partir de la versión 3.5.28 del Wrapper, la propiedad wrapper.lang también se puede configurar con los siguientes valores:

  • DESKTOP para el lenguaje de la interfaz de usuario.
  • SYSTEM para el lenguaje del sistema (comúnmente denominado "Lenguaje para programas que no utilizan Unicode").

En Windows, el valor predeterminado es DESKTOP. Antes de la versión 3.5.28, el idioma se determinaba mediante el identificador de idioma de la configuración de Formato de Región.

En los sistemas operativos basados en UNIX, tanto "DESKTOP" como "SYSTEM" se consideran valores predeterminados y se interpretan como el idioma de la sesión actual.

ADVERTENCIA

Las opciones DESKTOP y SYSTEM solo se pueden usar cuando wrapper.lang.windows.encoding está configurada como "ANSI" (predeterminado), "OEM" o "UTF-8". Para obtener más información, consulte la descripción de wrapper.lang.windows.encoding.

Desde la versión 3.5.31, el Wrapper intentará usar mayúsculas y minúsculas diferentes (por ejemplo, "JA_JP" en lugar de "ja_JP") si no encuentra una coincidencia exacta al buscar entre los idiomas instalados en el sistema. Esto se hace para mejorar la portabilidad, ya que se pueden usar caracteres en minúscula o mayúscula para un mismo idioma según la plataforma. Sin embargo, al ejecutarse en un solo servidor, se recomienda establecer el valor exactamente como lo devuelve el comando "locale".

También es posible especificar un modificador (p. ej., @euro) después del idioma. Si también se ha configurado wrapper.lang.encoding, el modificador se añadirá automáticamente después de la codificación al configurar la configuración regional. Normalmente no debería ser necesario añadir el modificador, ya que el Wrapper también busca entre las configuraciones regionales, ignorando los modificadores si no encuentra una coincidencia exacta.

wrapper.lang.encoding

Compatibilidad :3.5.0 (Obsoleta a partir de la versión 3.5.35)
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :Windows (No Compatible)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

ADVERTENCIA

El uso de esta propiedad ha quedado obsoleto a partir de la versión 3.5.35 del Wrapper, en favor de las propiedades wrapper.lang.windows.encoding y wrapper.lang.unix.encoding, que permiten utilizar valores de Windows y Unix en el mismo archivo de configuración.

Esta propiedad especifica la codificación del proceso del Wrapper que se utiliza para leer la salida de la JVM y escribir los registros. La codificación seleccionada debe estar instalada en el sistema operativo para poder utilizarla. Si el Wrapper no puede configurar la codificación, utilizará la del entorno en el que se ha ejecutado.

wrapper.lang.<platform>.encoding

Compatibilidad :3.5.35
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Este conjunto de propiedades se introdujo en la versión 3.5.35 para configurar la codificación del proceso del Wrapper (utilizado para leer la salida de la JVM y escribir las salidas de registro) de forma multiplataforma.

Si bien los sistemas Unix suelen usar la misma sintaxis para las codificaciones, Windows utiliza páginas de códigos en lugar de nombres. Si el Wrapper está diseñado para ejecutarse en ambas plataformas, puede usar wrapper.lang.unix.encoding y wrapper.lang.windows.encoding en su archivo de configuración para establecer la codificación para cada plataforma.

Los sistemas Unix suelen usar la misma sintaxis para las codificaciones. A veces, puede haber diferencias en mayúsculas/minúsculas o puntuación (por ejemplo, "UTF-8" y "utf8"), pero el Wrapper resolverá estos casos automáticamente si no encuentra una coincidencia exacta. Sin embargo, algunos sistemas operativos usan nombres específicos de plataforma, y puede ser útil especificar estas codificaciones con propiedades dedicadas. Esto es posible usando cualquiera de los nombres de plataforma que se enumeran a continuación. Si no se especifica la propiedad para una plataforma Unix, el valor predeterminado será el de wrapper.lang.unix.encoding.

Los valores admitidos para <platform> son:

Ejemplo: establecer la codificación en eucJP ("20932" en Windows, "IBM-eucJP" en AIX)
wrapper.lang=ja_JP
wrapper.lang.windows.encoding=20932
wrapper.lang.unix.encoding=eucJP
wrapper.lang.aix.encoding=IBM-eucJP

NOTA

Desde la versión 3.5.35, la propiedad wrapper.jvm.encoding se puede usar para establecer la codificación predeterminada de la JVM a un valor diferente de la codificación utilizada por el Wrapper. Son posibles tres configuraciones:

- Si no se especifica wrapper.lang.<platform>.encoding, el Wrapper lee la salida de la JVM utilizando la codificación definida en los argumentos de la JVM. Si no se especifica en los argumentos, utiliza por defecto la codificación del entorno.

- Si se especifica wrapper.lang.<platform>.encoding, el Wrapper utiliza esta codificación para leer la salida de la JVM y también establece la codificación predeterminada de la JVM al mismo valor.

Si se especifican tanto wrapper.lang.<platform>.encoding como wrapper.jvm.encoding, el Wrapper lee la salida de la JVM usando wrapper.lang.<platform>.encoding y establece la codificación predeterminada de la JVM al valor de wrapper.jvm.encoding. Esto requiere una JVM reciente que admita propiedades del sistema para establecer la codificación de las salidas estándar a un valor diferente de la codificación predeterminada (consulte la descripción de wrapper.jvm.encoding).

wrapper.lang.windows.encoding

Compatibilidad :3.5.35
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :WindowsMac OSX (No Compatible)Linux (No Compatible)Alpine Linux (No Compatible)FreeBSD (No Compatible)Solaris (No Compatible)IBM z/Linux (No Compatible)

Esta propiedad se agregó en la versión 3.5.35 para brindar soporte para codificaciones en Windows. El valor predeterminado es "ANSI", que hace referencia a la página de códigos ANSI predeterminada del sistema operativo. Este es el mismo valor que la JVM utiliza por defecto. Establecer esta propiedad en otro valor tendrá dos efectos:

- En primer lugar, el Wrapper pasará la codificación a la JVM añadiendo la propiedad del sistema file.encoding a la lista de argumentos de la JVM. Esto garantiza que la JVM y el Wrapper escriban y lean utilizando la misma codificación.

- En segundo lugar, se actualizará la configuración regional del proceso del Wrapper para que todas las salidas del Wrapper se puedan escribir en el archivo de registro utilizando la misma codificación.

El valor de esta propiedad se puede establecer en uno de los Identificadores de Páginas de Códigos de Windows. Sin embargo, tenga en cuenta que el Wrapper restringirá algunos valores cuando la página de códigos no se pueda usar para escribir en la consola (consulte la advertencia al final de esta sección) o cuando se sepa que la página de códigos es incompatible con el idioma configurado.

A partir de la versión 3.5.35, la compatibilidad solo se comprueba para los idiomas proporcionados con el Wrapper (es decir, inglés, alemán y japonés):

- El inglés es compatible con todas las páginas de códigos porque solo contiene caracteres ANSI.

- El alemán admite las siguientes páginas de códigos: 437, 850, 1141, 1250, 1252, 20106, 20273, 28591, 28592, 65000, y 65001 (UTF-8)

- El japonés admite las siguientes páginas de códigos: 932, 10001, 20290, 20932, 21027, 50220, 50221, 50222, 50930, 50931, 50939, 51932, 65000 y 65001 (UTF-8)

ADVERTENCIA

A diferencia de los sistemas Unix, Windows no comprueba la compatibilidad entre una página de códigos y un idioma al configurar la configuración regional. Esto significa que un idioma (distinto de los mencionados anteriormente) asociado a una página de códigos incorrecta puede generar resultados ilegibles, sin que el Wrapper pueda detectarlo. Por defecto, la localización del Wrapper se resuelve utilizando el idioma de la interfaz de usuario, que puede variar según el equipo. Para garantizar una codificación correcta en las distintas plataformas, se debe establecer wrapper.lang.windows.encoding en "ANSI" (o dejarlo con el valor predeterminado), "OEM" o "UTF-8" si wrapper.lang está configurada en "DESKTOP" o "SYSTEM".

Ejemplo: (establecer la codificación en eucJP)
wrapper.lang=ja_JP
wrapper.lang.windows.encoding=20932

También es posible especificar "UTF-8", "ANSI" u "OEM". Las dos últimas opciones se refieren a la página de códigos ANSI del sistema operativo y a la página de códigos OEM del sistema operativo.

Ejemplo: (establecer la codificación a UTF-8)
wrapper.lang=de_DE
wrapper.lang.windows.encoding=UTF-8

Tenga en cuenta que algunas codificaciones, como UTF-8, contienen caracteres codificados en más de 2 bytes. La configuración regional del proceso del Wrapper no se puede establecer con una página de códigos DBCS, pero el Wrapper opera internamente en Unicode y aplicará una conversión para escribir la salida del registro en la codificación correcta.

ADVERTENCIA

El Wrapper puede utilizar dos modos diferentes para registrar su salida en la consola. Estos modos se pueden controlar mediante la propiedad wrapper.console.direct.

Cuando se establece en TRUE (valor predeterminado), la consola funciona con Unicode y admite cualquier conversión del valor de wrapper.lang.windows.encoding. Sin embargo, debe asegurarse de que la fuente de la consola admita los caracteres del idioma. La fuente se puede cambiar desde la ventana «Propiedades» de la consola.

Cuando wrapper.console.direct se establece en FALSE, el Wrapper utilizará stdout y stderr, lo que requiere que todas las salidas se escriban en la página de códigos de la consola para que puedan decodificarse y mostrarse correctamente en el otro extremo de los flujos. En este modo, cualquier valor de wrapper.lang.windows.encoding que no sea compatible con la página de códigos de la consola será rechazado.

NOTA

Además de establecer la codificación de la salida del Wrapper, wrapper.lang.windows.encoding también se utiliza al leer la salida de la JVM. Si se deja con su valor predeterminado (ANSI), las propiedades del sistema "file.encoding", "sun.stdout.encoding" y "sun.stderr.encoding" se pueden usar para especificar una codificación diferente que el Wrapper utilizará para leer la salida de la JVM. Sin embargo, si wrapper.lang.windows.encoding especifica una codificación distinta de "ANSI", las propiedades del sistema no se aceptarán en las propiedades wrapper.java.additional.*, ya que el Wrapper también necesitaría utilizarlas. En tal caso, el Wrapper considerará la configuración como inválida y se detendrá. Se le pedirá que elija entre las propiedades del Wrapper y las del sistema.

wrapper.lang.unix.encoding

Compatibilidad :3.5.35
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :Windows (No Compatible)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Esta propiedad se introdujo en la versión 3.5.35 para reemplazar la propiedad obsoleta wrapper.lang.encoding. Al igual que wrapper.lang.encoding, el valor predeterminado es la codificación de la configuración regional establecida para la sesión que inició el Wrapper.

Antes de utilizar la codificación, el Wrapper siempre se asegurará que la combinación del idioma y la codificación configurados exista como configuración regional instalada en el sistema y que se admitan las conversiones desde y hacia dicha codificación. Si la configuración es correcta, se actualizará la configuración regional (idioma y codificación) del proceso del Wrapper; de lo contrario, el Wrapper intentará combinar el idioma configurado con la codificación de la sesión que lo inició o, en caso de no lograrlo, no actualizará la configuración regional.

Ejemplo: (establecer la codificación a eucJP)
wrapper.lang=ja_JP
wrapper.lang.unix.encoding=eucJP

Si utiliza el comando "locale -a" para listar todas las configuraciones regionales instaladas en el sistema, es posible que observe que algunas de ellas no tienen una codificación especificada en su nombre descriptivo. De hecho, dichas configuraciones regionales tienen una codificación predeterminada que se puede mostrar utilizando el siguiente comando:

Ejemplo: (mostrar la codificación predeterminada)
LANG=de_DE@euro locale charmap
ISO-8859-15

Para que el Wrapper utilice una configuración regional con una codificación predeterminada, es necesario establecer wrapper.lang.encoding al valor de la codificación predeterminada.

Ejemplo: (definir una configuración regional con su codificación predeterminada)
wrapper.lang=de_DE@euro
wrapper.lang.unix.encoding=ISO-8859-15

NOTA

En algunas plataformas, tendría que cambiar la configuración regional antes de ejecutar "locale charmap".

En macOS, el comando "locale charmap" devuelve una cadena vacía al consultar la codificación predeterminada de una configuración regional. En este caso, se asume que la codificación es UTF-8.

NOTA

Al configurar la configuración regional, algunas plataformas (Linux, AIX) ignoran los guiones, la puntuación y las mayúsculas/minúsculas en la notación de codificación. Por ejemplo, UTF-8 es equivalente a utf8. Otras plataformas requieren que las codificaciones coincidan estrictamente (Solaris, FreeBSD, HP-UX). Finalmente, algunas plataformas requieren que los guiones y la puntuación coincidan, pero no necesariamente las mayúsculas/minúsculas (macOS, ZOS).

ADVERTENCIA

Para que los registros se muestren correctamente, la codificación configurada debe coincidir con la del terminal. El Wrapper no tiene forma de conocer la codificación del terminal, ya que esta suele especificarse mediante una opción del emulador y no mediante una variable de configuración regional. Por ejemplo, la codificación del terminal de Gnome se puede cambiar desde el menú seleccionando: Terminal -> Establecer codificación de caracteres.

A diferencia de Windows, la compatibilidad entre un idioma y la codificación se verifica automáticamente, ya que solo es posible configurar una configuración regional a una de las instaladas en el sistema. Una configuración regional instalada es aquella cuya codificación es apropiada para el idioma y la región que representa.

Otra diferencia con Windows es que el Wrapper normalmente no necesita pasar la codificación a la JVM (a través de file.encoding), ya que la JVM usa automáticamente la codificación regional del proceso del Wrapper. Sin embargo, desde laversión 3.5.35, la codificación de salida de la JVM y la codificación predeterminada pueden establecerse en valores diferentes mediante wrapper.jvm.encoding, en cuyo caso el Wrapper deberá agregar ambas codificaciones a los argumentos utilizados al iniciar la JVM. Por esta razón, no está permitido usar wrapper.jvm.encoding junto con "file.encoding", "sun.stdout.encoding" o "sun.stderr.encoding" en las propiedades wrapper.java.additional.* (consulte wrapper.jvm.encoding para más detalles).

wrapper.lang.folder

Compatibilidad :3.5.0
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Esta propiedad establece la ubicación de los archivos de idioma. El valor predeterminado es "../lang".

Ejemplo: (Cambiar la ubicación de los archivos de idioma)
wrapper.lang.folder=lang

Tenga en cuenta que las rutas relativas se refieren a la ubicación del archivo binario del Wrapper, no a la ubicación desde donde se ejecutó el comando ni a la ubicación del archivo de configuración.

wrapper.lang.domain

Compatibilidad :3.5.0
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad (No Compatible)
Plataformas :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Esta propiedad define el dominio de los archivos binarios y de la biblioteca mo. Si desea cambiar el nombre de los archivos wrapper_XX.mo y wrapperjni_XX.mo, debe configurar esta propiedad en consecuencia.

Ejemplo: (cambiar el dominio)
wrapper.lang.domain=myapp

Esto hará que el Wrapper busque los archivos myapp_XX.mo o myappjni_XX.mo al cargar los recursos de idioma.