De landinstelling bepalen

Flash Player 10.1 of hoger, Adobe AIR 2.0 of hoger

Met een landinstelling wordt een specifieke combinatie van taal en culturele conventies voor een land of regio aangeduid.

De landinstellings-id kan probleemloos worden beheerd als tekenreeks. Met de LocaleID-klasse kunt u extra informatie ophalen die te maken heeft met een landinstelling.

U kunt een LocaleID als volgt maken:

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

Nadat het LocaleID-object is gemaakt, kunt u de gegevens over de landinstellings-id ophalen. Gebruik de methoden getKeysAndValues() , getLanguage() , getRegion() , getScript() , getVariant() en isRightToLeft() , en de eigenschap name .

De waarden die u ophaalt met deze methoden en eigenschappen bevatten extra informatie over de landinstellingen die niet rechtstreeks kan worden opgehaald van de landinstellings-id.

Wanneer een toepassing een service maakt die rekening houdt met de landinstelling, zoals bijvoorbeeld een functie voor datumnotatie, moet de toepassing aangeven welke landinstellingen worden gebruikt. De lijst met ondersteunde landinstellingen verschilt per besturingssysteem. De aangevraagde landinstellingen zijn daarom niet altijd beschikbaar.

Flash Player zoekt eerst naar overeenkomsten op basis van de taalcode van de landinstelling die u wilt instellen. Vervolgens probeert het programma om de landinstelling te verfijnen door te zoeken naar een identiek schrijfsysteem (schrift) en regio. Bijvoorbeeld:

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

In dit voorbeeld heeft de LocaleID() -constructor gegevens over de landinstelling opgehaald die het meest overeenkomen met de taalcode “es” voor de desbetreffende gebruiker.

De landinstellings-id instellen

U kunt de huidige landinstellingen van een toepassing op een aantal verschillende manieren instellen, waaronder de volgende:

  • Leg de code voor een enkele landinstellings-id vast in de toepassing. Deze aanpak komt vaak voor, maar biedt geen ondersteuning voor de internationalisatie van de toepassing.

  • Gebruik de voorkeuren van de landinstellings-id van het besturingssysteem van de gebruiker of browser, of gebruik andere gebruikersvoorkeuren. Deze werkwijze leidt gewoonlijk tot de beste landinstellingen voor de gebruiker, maar is niet altijd nauwkeurig. Er bestaat een risico dat de instellingen van het besturingssysteem niet overeenkomen met de werkelijke voorkeuren van de gebruiker. De gebruiker kan bijvoorbeeld een computer met iemand delen, waardoor hij de voorkeurslandinstellingen niet zelf kan aanpassen.

  • Nadat u de landinstellings-id hebt gebaseerd op de gebruikersvoorkeuren laat u de gebruiker kiezen uit een lijst met ondersteunde landinstellingen. Deze strategie is vaak de beste optie als uw toepassing meerdere landinstellingen ondersteunt.

U kunt deze derde optie als volgt implementeren:

  1. Haal een lijst op met de voorkeursinstellingen van de gebruiker voor landen of talen via een gebruikersprofiel, via de instellingen van de browser of van het besturingssysteem of via een cookie. (Uw toepassing moet deze logica zelf implementeren. De flash.globalization-bibliotheek biedt geen ondersteuning voor het rechtstreeks inlezen van deze voorkeuren.)

  2. Bepaal welke landinstellingen worden ondersteund door uw toepassing en stel de beste optie in als standaardwaarde. Met de methode LocaleID.determinePreferredLocales() vindt u de beste landinstellingen voor een gebruiker, op basis van de voorkeurslandinstellingen en de landinstellingen die worden ondersteund door het besturingssysteem.

  3. Biedt de gebruiker de mogelijkheid om de standaardlandinstelling te wijzigen als deze niet overeenkomt met de wensen van de gebruiker.

Beperkingen van andere klassen voor landinstelling en taal

Met de klasse fl.lang.Locale kunt u teksttekenreeksen op basis van een landinstelling vervangen. Hiervoor gebruikt u resourcepakketten met tekenreekswaarden. Deze klasse biedt echter geen ondersteuning voor de internationalisatie van functies zoals getal-, valuta- of datumnotatie, sorteren, zoekovereenkomsten en dergelijke. Bovendien is deze klasse alleen beschikbaar in Flash Professional.

U kunt de huidige taalcode-instelling van het besturingssysteem ook ophalen met de eigenschap flash.system.Capabilities.language . Deze eigenschap haalt echter alleen de ISO 639-1-taalcode op die uit twee letters bestaat en niet de volledige landinstellings-id. Bovendien wordt alleen een specifieke set met landinstellingen ondersteund.

Met AIR 1.5 kunt u de eigenschap flash.system.Capabilities.languages gebruiken. Hiermee beschikt u over een array met talen voor de gebruikersinterface waaraan de gebruiker zijn voorkeur geeft. Deze eigenschap heeft daarom niet de beperkingen van Capabilities.language .