Flex - internacjonalizacja

Flex zapewnia dwa sposoby na umiędzynarodowienie aplikacji Flex. Pokażemy, że czas kompilacji jest najczęściej używany w projektach.

Sr.No Technika i opis
1

Compile Time Internationalization

Ta technika jest najbardziej rozpowszechniona i wymaga niewielkich nakładów w czasie wykonywania; jest bardzo wydajną techniką tłumaczenia zarówno ciągów stałych, jak i sparametryzowanych; najprostsza w implementacji. Umiędzynarodowienie czasu kompilacji wykorzystuje standardowe pliki właściwości do przechowywania przetłumaczonych ciągów znaków i sparametryzowanych komunikatów, a te pliki właściwości są kompilowane bezpośrednio w aplikacji.

2

Run Time Internationalization

Ta technika jest bardzo elastyczna, ale wolniejsza niż internacjonalizacja statycznych stringów. Musisz oddzielnie skompilować pliki właściwości lokalizacji, pozostawić je poza aplikacją i załadować je w czasie wykonywania.

Przepływ pracy związany z internacjonalizacją aplikacji Flex

Krok 1 - Utwórz strukturę folderów

Utwórz folder ustawień regionalnych w folderze src projektu Flex. Będzie to katalog nadrzędny dla wszystkich plików właściwości dla ustawień narodowych, które aplikacja będzie obsługiwać. W folderze ustawień regionalnych utwórz podfoldery, po jednym dla każdego obsługiwanego ustawienia narodowego aplikacji. Konwencja nazywania ustawień regionalnych to

{language}_{country code}

Na przykład en_US reprezentuje język angielski Stanów Zjednoczonych. Region de_DE reprezentuje język niemiecki. Przykładowa aplikacja będzie obsługiwać dwa popularne języki: angielski i niemiecki.

Krok 2 - Utwórz pliki właściwości

Utwórz plik właściwości zawierający komunikaty, które mają być używane w aplikacji. StworzyliśmyHelloWorldMessages.properties plik w ramach src > locale > en_US folder w naszym przykładzie.

enterName = Enter your name
clickMe = Click Me
applicationTitle = Application Internationalization Demonstration
greeting = Hello {0}

Utwórz pliki właściwości zawierające przetłumaczone wartości specyficzne dla lokalizacji. StworzyliśmyHelloWorldMessages.properties plik w ramach src > locale > de_DEfolder w naszym przykładzie. Ten plik zawiera tłumaczenia w języku niemieckim. _de określa niemiecką lokalizację i zamierzamy obsługiwać język niemiecki w naszej aplikacji.

Jeśli tworzysz plik właściwości za pomocą programu Flash Builder, zmień kodowanie pliku na UTF-8 Wybierz plik, a następnie kliknij go prawym przyciskiem myszy, aby otworzyć jego okno właściwości. Wybierz Kodowanie pliku tekstowego jako Other UTF-8. Zastosuj i zapisz zmianę.

enterName = Geben Sie Ihren Namen
clickMe = Klick mich
applicationTitle = Anwendung Internationalisierung Demonstration
greeting = Hallo {0}

Krok 3 - Określ opcje kompilatora

  • Kliknij projekt prawym przyciskiem myszy i wybierz opcję Właściwości.

  • Wybierz Flex Compiler i dodaj następujące elementy do ustawień dodatkowych argumentów kompilatora -

-locale en_US de_DE
  • Kliknij projekt prawym przyciskiem myszy i wybierz opcję Właściwości.

  • Wybierz Flex Build Path i dodaj następujące elementy do ustawień Source Path -

src\locale\{locale}

Przykład internalizacji

Teraz wykonajmy następujące kroki, aby przetestować technikę internalizacji w aplikacji Flex -

Krok Opis
1 Utwórz projekt o nazwie HelloWorld pod pakietem com.tutorialspoint.client, jak wyjaśniono w rozdziale Flex - tworzenie aplikacji .
2 Zmodyfikuj HelloWorld.mxml, jak wyjaśniono poniżej. Resztę plików nie zmieniaj.
3 Skompiluj i uruchom aplikację, aby upewnić się, że logika biznesowa działa zgodnie z wymaganiami.

Poniżej znajduje się zawartość zmodyfikowanego pliku mxml src/com.tutorialspoint/HelloWorld.mxml.

<?xml version = "1.0" encoding = "utf-8"?>
   <s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009" 
   xmlns:s = "library://ns.adobe.com/flex/spark" 
   xmlns:mx = "library://ns.adobe.com/flex/mx" 
   minWidth = "500" minHeight = "500">
   
   <fx:Metadata>
      [ResourceBundle("HelloWorldMessages")]
   </fx:Metadata> 
   
   <fx:Style source = "/com/tutorialspoint/client/Style.css" />
   <fx:Script>
      <![CDATA[
         import mx.controls.Alert;
         [Bindable]
         private var locales:Array =  [{label:"English", locale:"en_US"},
            {label:"German", locale:"de_DE"}];

         private function comboChangeHandler():void {
           resourceManager.localeChain = [localeComboBox.selectedItem.locale];
         }

         protected function clickMe_clickHandler(event:MouseEvent):void {
            var name:String = txtName.text;
            var inputArray:Array = new Array();
            inputArray.push(name);
            Alert.show(resourceManager.getString('HelloWorldMessages'
               ,'greeting',inputArray));
         }
      ]]>
   </fx:Script>
   
   <s:BorderContainer width = "500" height = "500" id = "mainContainer" 
      styleName = "container">
      <s:VGroup width = "100%" height = "100%" gap = "50" 
	  horizontalAlign = "center" verticalAlign = "middle">
         
         <s:Label id = "lblHeader" fontSize = "40" 
            color = "0x777777" 
            text  = "{resourceManager.getString('HelloWorldMessages','applicationTitle')}"
            styleName = "heading" width = "90%" height = "150" />
         
         <s:Panel width = "300" height = "150">
            <s:layout>
               <s:VerticalLayout paddingTop = "10" paddingLeft = "10" />
            </s:layout>
            
            <s:HGroup >
               <s:Label text = "{resourceManager.getString('HelloWorldMessages','enterName')}"
                  paddingTop = "2" />			
               <s:TextInput id = "txtName" />
            </s:HGroup>
            
            <s:Button 
               label = "{resourceManager.getString('HelloWorldMessages','clickMe')}" 
               click = "clickMe_clickHandler(event)" right = "10" />	
         </s:Panel>
         
         <mx:ComboBox id = "localeComboBox" dataProvider = "{locales}"
            change = "comboChangeHandler()" />
      </s:VGroup>	
   </s:BorderContainer>	
</s:Application>

Gdy będziesz gotowy ze wszystkimi wprowadzonymi zmianami, skompilujmy i uruchom aplikację w trybie normalnym, tak jak zrobiliśmy to w rozdziale Flex - Utwórz aplikację . Jeśli wszystko jest w porządku z Twoją aplikacją, otrzymasz następujący wynik: [ Wypróbuj online ]

Zmień język za pomocą menu rozwijanego języka i zobacz wynik.