Lokalizowanie aplikacji

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Lokalizowanie to proces dołączania zasobów w celu obsługi wielu ustawień narodowych. Ustawienia narodowe to kombinacja języka i kodu kraju. Na przykład: en_US dotyczy języka angielskiego używanego w USA, a fr_FR dotyczy języka francuskiego używanego we Francji. W celu zlokalizowania aplikacji dla tych ustawień narodowych należy udostępnić dwa zestawy zasobów: jeden dla ustawień narodowych en_US i jeden dla ustawień narodowych fr_FR.

Dla różnych ustawień narodowych mogą występować wspólne języki. Przykład: en_US i en_GB (Wielka Brytania) to różne ustawienia narodowe. W tym przypadku w obydwu ustawieniach narodowych używany jest język angielski, jednak kody krajów wskazują, że są to różne ustawienia narodowe, a więc mogą zawierać różne zasoby. Na przykład: nazwa aplikacji zgodnie z ustawieniami narodowymi en_US może zawierać słowo „color”, a w ustawieniach narodowych en_GB może być to słowo „colour”. Ponadto jednostki walut są reprezentowane w dolarach lub funtach w zależności od ustawień narodowych — inny może być również format daty i godziny.

Możliwe jest również udostępnienie zestawu zasobów bez konieczności określania kodu kraju. Na przykład: można udostępnić zasoby en dla języka angielskiego, a także udostępnić zasoby dodatkowe dla ustawień narodowych en_US właściwych dla języka angielskiego używanego w USA.

Lokalizowanie to znacznie więcej niż tłumaczenie ciągów znaków używanych w aplikacji. Ten proces obejmuje wszystkie typy zasobów, takie jak pliki audio, obrazy i pliki wideo.

Wybieranie ustawień regionalnych

W celu określenia ustawień narodowych treści, z których korzysta aplikacja, można użyć jednej z poniższych metod:

  • Pakiet flash.globalization — użyj klas zorientowanych na ustawienia narodowe w pakiecie flash.globalization, aby pobrać domyślne ustawienia narodowe dla użytkownika w oparciu o system operacyjny oraz preferencje użytkownika. To podejście jest preferowane w przypadku aplikacji, które są uruchamiane w środowiskach wykonawczych Flash Player 10.1 lub nowszych oraz AIR 2.0 lub nowszych. Aby uzyskać więcej informacji, zapoznaj się z sekcją Określenie ustawień narodowych .

  • Monit — aplikację można uruchomić z domyślnymi ustawieniami regionalnymi, a następnie można poprosić użytkownika, aby wybrał preferowane ustawienia regionalne.

  • (Tylko środowisko AIR) Capabilities.languages — właściwość Capabilities.languages zawiera tablicę języków dostępnych jako preferowane języki użytkownika, ustawione za pomocą systemu operacyjnego. Ciągi znaków zawierają znaczniki języka (a w razie potrzeby także informacje o skrypcie i informacje regionalne) zdefiniowane w dokumencie RFC4646 ( http://www.ietf.org/rfc/rfc4646.txt ). W ciągach znaków w roli ograniczników używane są myślniki (na przykład: "en-US" lub "ja-JP" ). Pierwsza pozycja w zwróconej tablicy ma taki sam identyfikator języka podstawowego, jak właściwość language. Na przykład: jeśli languages[0] ma wartość "en-US" , wówczas właściwość language ma wartość "en". Jeśli jednak właściwość language ma wartość "xu" (język nieznany), wówczas pierwszy element w tablicy languages jest inny.

  • Capabilities.language — właściwość Capabilities.language udostępnia kod języka interfejsu użytkownika systemu operacyjnego. Jednak ta właściwość jest ograniczona do 20 znanych języków. Ponadto w systemach w języku angielskim ta właściwość zwraca tylko kod języka, a nie kod kraju. Z tego względu lepiej jest używać pierwszego elementu z tablicy Capabilities.languages .

Lokalizowanie treści Flex

Środowisko Adobe Flex zawiera strukturę przeznaczoną do lokalizowania treści Flex. Struktura zawiera klasy Locale, ResourceBundle i ResourceManagerImpl, a także interfejsy IResourceBundle i IResourceManagerImpl.

W witrynie Google Code (http://code.google.com/p/as3localelib/) dostępna jest biblioteka lokalizacyjna Flex zawierająca klasy narzędziowe służące do sortowania ustawień narodowych aplikacji.

Lokalizowanie zawartości Flash

Wśród składników języka ActionScript 3.0 w programie Adobe Flash Professional znajduje się klasa Locale. Klasa Locale umożliwia kontrolowanie wyświetlania tekstu wielojęzycznego w pliku SWF. W panelu Ciągi Flash można używać identyfikatorów ciągów znaków zamiast literałów ciągów w polach tekstu dynamicznego. Dzięki temu możliwe jest utworzenie pliku SWF, który będzie wyświetlał tekst załadowany z pliku XML właściwego dla języka. Informacje na temat korzystania z klasy Locale zawiera Skorowidz języka ActionScript 3.0 dla platformy Adobe Flash .

Lokalizowanie aplikacji AIR

Pakiet SDK środowiska AIR udostępnia strukturę lokalizowania zawartości HTML (w pliku AIRLocalizer.js). Struktura ta udostępnia interfejs API ułatwiający pracę z wieloma ustawieniami narodowymi w aplikacjach opartych na języku HTML. Biblioteka ActionScript do sortowania ustawień narodowych jest dostępna pod adresem http://code.google.com/p/as3localelib/.

Lokalizowanie walut oraz zapisów dat i godzin

Sposób, w jaki aplikacje prezentują daty, godziny i waluty, różni się w zależności od ustawień narodowych. Na przykład: standard USA dla dat określa kolejność miesiąc/dzień/rok, a standard europejski dla dat określa kolejność dzień/miesiąc/rok.

Możliwe jest napisanie odpowiedniego kodu w celu formatowania zapisu dat, godzin i walut. Przykład: poniższy kod konwertuje obiekt Date na format miesiąc/dzień/rok lub format dzień/miesiąc/rok. Jeśli zmienna locale (reprezentująca ustawienia narodowe) ma wartość "en_US" , funkcja zwraca format miesiąc/dzień/rok. W przykładzie obiekt Date został przekonwertowany na format dzień/miesiąc/rok dla wszystkich innych ustawień narodowych:

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

Platforma Flex zawiera elementy sterujące przeznaczone do formatowania zapisów dat, godzin i walut. Są to między innymi elementy sterowania DateFormatter i CurrencyFormatter.