Determinación de la configuración regional

Flash Player 10.1 y posterior, Adobe AIR 2.0 y posterior

Una configuración regional identifica una combinación específica de convenciones idiomáticas y culturales que se aplican a un país o región.

Los identificadores de configuración regional se pueden administrar como una cadena. Pero puede utilizar la clase LocaleID para obtener información adicional relacionada con la configuración regional.

Los objetos LocaleID se crean del modo siguiente:

var locale:LocaleID = new LocaleID("es-MX");

Una vez creado el objeto LocaleID, puede recuperar los datos de su ID de configuración regional. Utilice los métodos getKeysAndValues() , getLanguage() , getRegion() , getScript() , getVariant() y isRightToLeft() , y la propiedad name .

Los valores recuperados de estos métodos y propiedades pueden contener información adicional que no podría extraerse directamente del identificador de configuración regional.

Cuando una aplicación crea un servicio con detección de configuración regional, como un formateador de datos, debe especificar la configuración regional que se va a utilizar. La lista de configuraciones regionales admitidas varía según el sistema operativo; por ello, es posible que la configuración regional solicitada no siempre esté disponible.

Flash Player primero intenta buscar coincidencias del código de idioma de la configuración regional solicitada. Seguidamente, intenta afinar la búsqueda de configuración regional y busca un sistema de escritura (script) y una región. Por ejemplo:

var loc:LocaleID = new LocaleID("es"); 
trace(loc.getLanguage()); // es 
trace(loc.getScript()); // Latn 
trace(loc.getRegion()); // ES

En este ejemplo, el constructor LocaleID() recupera datos sobre la configuración regional que coincide con el código de idioma “es” de dicho usuario.

Definición de la ID de configuración regional

Hay varias formas de definir la configuración regional actual de una aplicación, por ejemplo:

  • Incluir un ID de configuración regional único en el código de la aplicación. Es una táctica habitual, pero no permite la internacionalización de la aplicación.

  • Utilizar las preferencias del ID de configuración regional del sistema operativo del usuario, o del navegador, u otro conjunto de preferencias del usuario. Normalmente esta técnica produce los mejores resultados de coincidencia de configuración regional para el usuario, aunque no es totalmente preciso. Existe el riesgo de que la configuración del sistema operativo no refleje las preferencias reales del usuario. Por ejemplo, el usuario puede estar utilizando un equipo compartido y no poder cambiar las configuraciones regionales preferidas del sistema operativo.

  • Tras definir el ID de configuración regional en las preferencias del usuario, deje que el usuario seleccione la configuración regional que desee en una lista. Esta estrategia suele ser la mejor opción si la aplicación admite más de una configuración regional.

Puede implementar la siguiente tercera opción también si lo desea:

  1. Recupere una lista con las configuraciones regionales o los idiomas preferidos del usuario desde su perfil, la configuración del navegador, la configuración del sistema operativo o desde una cookie. (Su aplicación debería poder implementar esta lógica pos sí misma. La biblioteca flash.globalization no admite leer directamente preferencias de este tipo.)

  2. Determine qué configuración regional de las mostradas se admite en la aplicación y seleccione la mejor como predeterminada. Utilice el método LocaleID.determinePreferredLocales() para encontrar las mejores configuraciones regionales para un usuario en función de sus configuraciones regionales preferidas y de las admitidas por el sistema operativo.

  3. Deje que el usuario pueda cambiar la configuración predeterminada de la configuración regional en caso de que la predeterminada no sea la elegida.

Limitaciones de otras clases de configuración regional e idioma

La clase fl.lang.Locale permite reemplazar cadenas de texto a partir de una configuración regional, mediante paquetes de recursos con valores de cadena. Sin embargo, esta clase no admite otras características de internacionalización, como los números, la divisa o el formato de fechas, la ordenación, etc. Además, esta clase solo está disponible en Flash Professional.

También puede recuperar la configuración del código de idioma actual para el sistema operativo con la propiedad flash.system.Capabilities.language . Sin embargo, esta propiedad recupera solo el código del lenguaje ISO 639-1 de dos caracteres (no el ID de configuración regional completo) y solo admite un grupo concreto de configuraciones regionales.

Con AIR 1.5, puede utilizar la propiedad flash.system.Capabilities.languages . Esta propiedad proporciona un conjunto de idiomas de interfaz de usuario preferidos por los usuarios. De esto modo, no tiene las limitaciones de Capabilities.language .