Bestämma språkområde

Flash Player 10.1 och senare, Adobe AIR 2.0 och senare

Ett språkområde identifierar en särskild uppsättning språkliga och kulturella konventioner för ett visst land eller en viss region.

En identifierare av språkområdet kan hanteras säkert som en sträng. Men du kan använda klassen LocaleID för ytterligare information om ett språkområde.

Du skapar ett LocaleID-objekt enligt följande:

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

När LocaleID-objektet har skapats kan du hämta information om detta språkområdes-ID. Använd metoderna getKeysAndValues() , getLanguage() , getRegion() , getScript() , getVariant() och isRightToLeft() samt egenskapen name .

De värden som du får från dessa metoder och egenskaper kan ge annan information om språkområdet som inte kan fås direkt av identifieraren av språkområdet.

När ett program skapar en språkområdeskänslig tjänst, till exempel en datumformaterare, måste det språkområde som ska användas anges. Listan med språkområden varierar mellan olika operativsystem, vilket kan innebära att det begärda språkområdet inte behöver vara tillgängligt.

Flash Player försöker först matcha språkkoden för det språkområde som du har begärt. Sedan görs ett försök att förfina valet av språkområde genom att hitta ett skrivsystem (skript) och en region som matchar. Till exempel:

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

I det här exemplet hämtar LocaleID() -konstruktorn data om det språkområde som bäst matchar språkkoden ”es” för användaren.

Ange språkområdes-ID

Du kan ange det aktuella språkområdet för ett program på flera olika sätt, till exempel genom att:

  • Hårdkoda ett enda språkområdes-ID i programmet. Det här är vanligt, men det stöder inte internationalisering av programmet.

  • Använda språkområdesinställningarna från användarens operativsystem eller webbläsare, eller andra användarinställningar. Den här tekniken resulterar ofta i de bästa språkområdesinställningarna för användaren, men är inte alltid de rätta. Det finns en risk att operativsystemets inställningar inte överensstämmer med de språkområdesinställningar som användaren faktiskt föredrar. Användaren kanske till exempel använder en delad dator och kan inte ändra operativsystemets språkområdesinställningar.

  • Låta användaren välja språkområde från en lista över de språkområden som stöds efter att språkområdet har angetts baserat på användarens inställningar. Den här strategin är vanligtvis det bästa alternativet om programmet har stöd för flera språkområden.

Du kan implementera det tredje alternativet på följande sätt:

  1. Hämta en lista över de språkområden som användaren föredrar från användarprofilen, webbläsarinställningarna, operativsysteminställningarna eller en cookies-fil. (Programmet måste själv implementera logiken. En direkt läsning av sådana här inställningar stöds inte av flash.globalization-biblioteket.)

  2. Avgör vilka av dessa språkområden som stöds av ditt program och välj den bästa som standard. Använd metoden LocaleID.determinePreferredLocales() för att hitta de bästa språkområdena för en användare baserat på de språkområdesinställningar som användaren föredrar och de språkområden som stöds av operativsystemet.

  3. Ge användaren en möjlighet att ändra standardinställningen för språkområde om användaren skulle vilja det.

Begränsningar för andra klasser för språkområden och språk

Med klassen fl.lang.Locale kan du ersätta textsträngar baserat på ett språkområde genom att använda resursbuntar med strängvärden. Den här klassen stöder dock inte andra funktioner för internationalisering, som siffror, valutor, datumformatering, sortering, matchning och så vidare. Dessutom är den här klassen endast tillgänglig med Flash Professional.

Du kan också hämta den aktuella språkkodsinställningen för operativsystemet med egenskapen flash.system.Capabilities.language . Den här egenskapen hämtar emellertid endast den två tecken långa språkkoden enligt ISO 639-1, inte det kompletta språkområdes-ID:t, och den har endast stöd för en specifik uppsättning språkområden.

Med AIR 1.5 kan du använda egenskapen flash.system.Capabilities.languages . Den här egenskapen innehåller en array med de användarens språkinställningar. Den har alltså inte de begränsningar som finns i Capabilities.language .