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.