Lokalisera program

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Lokalisering är en process där du inkluderar resurser som kan hantera flera språkområden. Ett språkområde är en kombination av en språkkod och en landskod. Till exempel avser språkområdet en_US den variant av engelska som talas i USA och fr_FR den franska som talas i Frankrike. Om du vill lokalisera ett program för dessa språkområden måste du ange två uppsättningar resurser: en för språkområdet en_US och en för fr_FR.

Olika språkområden kan ha samma språk. Till exempel är en_US och en_GB (Storbritannien) olika språkområden. I det här fallet används engelska för båda språkområden men landskoden visar att det är olika språkområden och att de därför kanske använder olika resurser. I ett program med språkområdet en_US kan till exempel ordet färg stavas som ”color”, medan det stavas ”colour” med språkområdet en_GB. Valutaenheter visas i dollar eller pund beroende på språkområde, och datum- och tidsformaten kan också vara olika.

Du kan ange en uppsättning resurser för ett språk utan att ange en landskod. Du kan till exempel ange en-resurser för engelska och ange ytterligare resurser för språkområdet en_US, som endast ska gälla för amerikansk engelska.

Lokalisering handlar om mer än att bara översätta strängar som används i programmet. Det kan även omfatta olika resurstyper, t.ex. ljudfiler, bilder och videoklipp.

Välja en språkinställning

Om du vill se vilken språkinställning som används i innehållet eller programmet kan du göra något av följande:

  • flash.globalization package – Använd språkområdeskänsliga klasser i flash.globalization-paketet för att hämta standardspråkområdet för användaren utifrån operativsystemet och användarinställningarna. Det här är det rekommenderade sättet för program som körs på Flash Player 10.1 eller senare eller AIR 2.0 eller senare. Se Bestämma språkområde för mer information.

  • Användaruppmaning – Du kan starta programmet med en viss standardspråkinställning och sedan be användaren att välja önskad språkinställning.

  • (endast AIR) Capabilities.languages – Egenskapen Capabilities.languages listar en array med de språk som är tillgängliga, utifrån de språkinställningar användaren gjort via operativsystemet. Strängarna innehåller språktaggar (och skript och regionsinformation, om sådan finns) enligt RFC4646 ( http://www.ietf.org/rfc/rfc4646.txt ). I strängarna används bindestreck som avgränsare (t.ex. "en-US" och "ja-JP" ). Den första posten i den returnerade arrayen har samma primära språk-ID som language-egenskapen. Om till exempel languages[0] är inställd på "en-US" ställs language -egenskapen in på "en". Men om language-egenskapen ställs in på "xu" (ett okänt språk) är det första elementet i languages -arrayen annorlunda.

  • Capabilities.language Capabilities.language -egenskapen tillhandahåller språkkoden för användargränssnittet i operativsystemet. Den här egenskapen är dock begränsad till 20 kända språk. I engelska system returnerar den här egenskapen bara språkkoden, inte landskoden. På grund av det här är det bättre att använda det första elementet i Capabilities.languages -arrayen.

Lokalisera Flex-innehåll

I Adobe Flex finns ett ramverk för lokalisering av Flex-innehåll. Ramverket omfattar klasserna Locale, ResourceBundle och ResourceManagerImpl, samt gränssnitten IResourceBundle och IResourceManagerImpl.

Ett Flex-lokaliseringsbibliotek med hjälpklasser för att sortera programspråkområden finns tillgängligt på Google Code (http://code.google.com/p/as3localelib/).

Lokalisera Flash-innehåll

Adobe Flash Professional omfattar en Locale-klass i ActionScript 3.0-komponenterna. Med hjälp av klassen Locale kan du styra hur en SWF-fil visar text på flera språk. På strängpanelen i Flash kan du använda sträng-ID i stället för stränglitteraler i dynamiska textfält. Det innebär att du kan skapa en SWF-fil som visar text som läses in från språkspecifika XML-filer. Information om hur du använder klassen Locale finns i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen .

Lokalisera AIR-program

I AIR SDK finns ett HTML-lokaliseringsramverk (finns i filen AIRLocalizer.js). Detta ramverk innehåller API:er som kommer väl till pass när du arbetar med flera språkområden i ett HTML-baserat program. Ett ActionScript-bibliotek för att sortera språkområden finns på http://code.google.com/p/as3localelib/.

Lokalisera datum, tider och valutor

Visningen av datum, tider och valutor i ett program varierar väldigt mycket för varje språkinställning. Den amerikanska standarden för att visa datum är till exempel månad/dag/år medan den europeiska standarden är dag/månad/år.

Du kan skriva kod för att formatera datum, tider och valutor. Följande kod konverterar till exempel ett Date-objekt till formatet månad/dag/år eller formatet dag/månad/år. Om variabeln locale (representerar språkinställningen) är angiven som "en_US" , returnerar funktionen formatet månad/dag/år. Exemplet konverterar ett Date-objekt till formatet dag/månad/år för alla andra språkinställningar:

function convertDate(date) 
{ 
    if (locale == "en_US") 
    { 
        return (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear(); 
    } 
    else 
    { 
        return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    } 
}

ADOBE FLEX

I Flex-ramverket finns kontroller för formatering av datum, tider och valutor. Dessa omfattar kontrollerna DateFormatter och CurrencyFormatter.