
- Adobe Flex 教程
- Flex - 首頁
- Flex - 概述
- Flex - 環境
- Flex - 應用
- Flex - 建立應用
- Flex - 部署應用
- Flex - 生命週期階段
- Flex - 使用 CSS 樣式化
- Flex - 使用皮膚樣式化
- Flex - 資料繫結
- Flex - 基本控制元件
- Flex - 表單控制元件
- Flex - 複雜控制元件
- Flex - 佈局面板
- Flex - 視覺效果
- Flex - 事件處理
- Flex - 自定義控制元件
- Flex - RPC 服務
- Flex - FlexUnit 整合
- Flex - 除錯應用
- Flex - 國際化
- Flex - 列印支援
- Adobe Flex 資源
- Flex - 快速指南
- Flex - 有用資源
- Flex - 討論
Flex - 國際化
Flex 提供兩種國際化 Flex 應用程式的方法,我們將演示編譯時國際化方法,這是專案中最常用的方法。
序號 | 技術及描述 |
---|---|
1 | 編譯時國際化 此技術最為普遍,執行時開銷極少;這是一種非常高效的技術,用於翻譯常量和引數化字串;實現最簡單。編譯時國際化使用標準屬性檔案來儲存翻譯後的字串和引數化訊息,這些屬性檔案直接編譯到應用程式中。 |
2 | 執行時國際化 此技術非常靈活,但比靜態字串國際化慢。您需要單獨編譯本地化屬性檔案,將它們放在應用程式外部,並在執行時載入它們。 |
Flex 應用程式國際化的工作流程
步驟 1 – 建立資料夾結構
在 Flex 專案的 src 資料夾下建立一個 locale 資料夾。這將是應用程式將支援的所有語言環境的屬性檔案的父目錄。在 locale 資料夾中,為應用程式將支援的每個語言環境建立一個子資料夾。語言環境的命名約定為
{language}_{country code}
例如,en_US 代表美國的英語。語言環境 de_DE 代表德語。示例應用程式將支援兩種常用語言:英語和德語。
步驟 2 – 建立屬性檔案
建立包含要在應用程式中使用的訊息的屬性檔案。在我們的示例中,我們在src > locale > en_US資料夾下建立了一個HelloWorldMessages.properties檔案。
enterName = Enter your name clickMe = Click Me applicationTitle = Application Internationalization Demonstration greeting = Hello {0}
建立包含特定於語言環境的翻譯值的屬性檔案。在我們的示例中,我們在src > locale > de_DE資料夾下建立了一個HelloWorldMessages.properties檔案。此檔案包含德語翻譯。_de 指定德語語言環境,我們將支援應用程式中的德語。
如果您使用 Flash Builder 建立屬性檔案,請將檔案的編碼更改為 UTF-8。選擇檔案,然後右鍵單擊它以開啟其屬性視窗。選擇文字檔案編碼為其他 UTF-8。應用並儲存更改。
enterName = Geben Sie Ihren Namen clickMe = Klick mich applicationTitle = Anwendung Internationalisierung Demonstration greeting = Hallo {0}
步驟 3 – 指定編譯器選項
右鍵單擊您的專案並選擇屬性。
選擇 Flex 編譯器,並在“其他編譯器引數”設定中新增以下內容:
-locale en_US de_DE
右鍵單擊您的專案並選擇屬性。
選擇 Flex 構建路徑,並在“源路徑”設定中新增以下內容:
src\locale\{locale}
國際化示例
現在讓我們按照以下步驟在 Flex 應用程式中測試國際化技術:
步驟 | 描述 |
---|---|
1 | 按照Flex - 建立應用章節中的說明,建立一個名為HelloWorld、包名為com.tutorialspoint.client的專案。 |
2 | 按如下所述修改HelloWorld.mxml。保持其餘檔案不變。 |
3 | 編譯並執行應用程式以確保業務邏輯按要求工作。 |
以下是修改後的 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>
完成所有更改後,讓我們像在Flex - 建立應用章節中一樣,在正常模式下編譯並執行應用程式。如果您的應用程式一切正常,它將產生以下結果:[ 線上試用 ]

使用語言下拉選單更改語言,然後檢視結果。
