Określenie ustawień narodowych

Flash Player 10.1 i nowsze wersje, Adobe AIR 2.0 i nowsze wersje

Ustawienia narodowe identyfikują konkretną kombinację języka i konwencji kulturowych obowiązującą w danym kraju lub regionie.

Identyfikator ustawień narodowych można w bezpieczny sposób traktować jako łańcuch. Można też jednak użyć klasy LocaleID w celu uzyskania dodatkowych informacji związanych z danymi ustawieniami narodowymi.

Obiekt LocaleID tworzy się w następujący sposób:

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

Po utworzeniu obiektu LocaleID można odczytać dane dotyczące identyfikatora ustawień narodowych. Służą do tego metody getKeysAndValues() , getLanguage() , getRegion() , getScript() , getVariant() i isRightToLeft() oraz właściwość name .

Wartości odczytane z tych metod i właściwości mogą dostarczyć dodatkowych informacji, których nie można uzyskać bezpośrednio na podstawie identyfikatora ustawień narodowych.

Gdy aplikacja tworzy usługę uwzględniającą ustawienia narodowe, na przykład usługę formatowania daty, musi określić ustawienia narodowe. W każdym systemie operacyjnym lista obsługiwanych ustawień narodowych jest potencjalnie inna, dlatego żądane ustawienia narodowe mogą być niedostępne.

Program Flash Player najpierw próbuje dopasować kod języka żądanych ustawień narodowych. Następnie próbuje zoptymalizować wybór ustawień narodowych, znajdując pasujący system pisma i region. Na przykład:

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

W tym przykładzie konstruktor LocaleID() pobrał dane o ustawieniach narodowych, które w przypadku konkretnego użytkownika najlepiej pasują do kodu języka „es”.

Ustawienie identyfikatora ustawień narodowych

Istnieje kilka sposobów wyboru ustawień narodowych dla aplikacji, między innymi:

  • Wpisanie identyfikatora ustawień narodowych na stałe do kodu aplikacji. Ta często stosowana strategia nie umożliwia internacjonalizacji aplikacji.

  • Użycie preferowanego identyfikatora ustawień narodowych z systemu operacyjnego użytkownika, przeglądarki lub innego zbioru preferencji użytkownika. Zwykle zapewnia to wybór najlepszych ustawień narodowych dla użytkownika, ale nie zawsze wybór ten jest precyzyjny. Istnieje ryzyko, że ustawienia w systemie operacyjnym nie odzwierciedlają faktycznych preferencji użytkownika. Możliwe na przykład, że użytkownik korzysta ze wspólnego komputera i nie może zmienić preferowanych ustawień narodowych w systemie operacyjnym.

  • Wybranie identyfikatora ustawień narodowych na podstawie preferencji użytkownika i umożliwienie użytkownikowi dokonania dodatkowego wyboru z listy obsługiwanych ustawień narodowych. Jest to zazwyczaj najlepsza strategia, jeśli aplikacja obsługuje więcej niż jedne ustawienia narodowe.

Tę trzecią opcję można zaimplementować w następujący sposób:

  1. Odczytaj listę preferowanych przez użytkownika ustawień narodowych lub języków z profilu użytkownika, ustawień przeglądarki, ustawień systemu operacyjnego lub z pliku cookie. (Aplikacja musi zawierać implementację tej logiki. Biblioteka flash.globalization nie obsługuje bezpośrednio odczytywania takich preferencji.)

  2. Określ, które z tych ustawień narodowych są obsługiwane przez aplikację, i wybierz domyślnie najlepsze z nich. Za pomocą metody LocaleID.determinePreferredLocales() określ najlepsze ustawienia narodowe dla użytkownika na podstawie ustawień preferowanych i obsługiwanych przez system operacyjny.

  3. Zaoferuj użytkownikowi możliwość zmiany domyślnego wyboru ustawień narodowych, jeśli domyślne ustawienia go nie satysfakcjonują.

Ograniczenia dotyczące innych klas ustawień narodowych i językowych

Klasa fl.lang.Locale umożliwia zastępowanie ciągów tekstowych na podstawie ustawień narodowych i przy użyciu pakunków zasobów zawierających wartości ciągów. Jednak klasa ta nie obsługuje żadnych innych elementów internacjonalizacji, takich jak formatowanie liczb, walut i dat, sortowanie, porównywanie itd. Ponadto klasa ta jest dostępna tylko w programie Flash Professional.

Bieżący kod języka wybranego w systemie operacyjnym można także odczytać z właściwości flash.system.Capabilities.language . Jednak ta właściwość zwraca tylko dwuznakowy kod języka wg normy ISO 639-1 — a nie pełny identyfikator ustawień narodowych — i obsługuje tylko określony zestaw ustawień narodowych.

W środowisku AIR 1.5 można skorzystać z właściwości flash.system.Capabilities.languages . Właściwość ta udostępnia tablicę z informacją o preferowanych przez użytkownika językach interfejsu. Jest zatem pozbawiona ograniczeń właściwości Capabilities.language .