课程表

Flex课程

工具箱
速查手册

Flex 国际化

当前位置:免费教程 » 软件/图像 » Flex
Flex提供了两种方式来使Flex应用程序国际化,我们将演示编译时间的使用国际化是项目中最常用的。
技术描述
编译时间国际化这种技术是最普遍的,并且在运行时需要非常少的开销; 是一种用于翻译常量和参数化字符串的非常有效的技术;最简单的实现。 编译时国际化使用标准属性文件来存储翻译的字符串和参数化消息,这些属性文件直接在应用程序中编译。
运行时国际化这种技术非常灵活,但比静态字符串国际化慢。 您需要单独编译本地化属性文件,将它们保留在应用程序外部,并在运行时加载它们。

使Flex应用程序国际化的工作流程

步骤1:创建文件夹结构

在Flex项目的src文件夹下创建一个locale文件夹。这将是应用程序将支持的语言环境的所有属性文件的父目录。 在区域设置文件夹中,创建子文件夹,每个应用程序的区域设置支持一个。 命名语言环境的约定是

  1. {language}_{country code}

例如,en_US表示美国的英语。 区域设置de_DE表示德语。 示例应用程序将支持两种常用语言:英语和德语

步骤2:创建属性文件

创建包含要在应用程序中使用的消息的属性文件。 我们在 src locale > en_US 下创建了一个 HelloWorldMessages.properties 文件

  1. enterName=Enter your name
  2. clickMe=Click Me
  3. applicationTitle=Application Internationalization Demonstration
  4. greeting=Hello {0}

创建包含特定于语言环境的翻译值的属性文件。 我们在 src locale > de_DE 下创建了一个 HelloWorldMessages.properties 文件 此文件包含德语的翻译。 _de指定德语区域设置,我们将在我们的应用程序中支持德语。

如果要使用Flash Builder创建属性文件,请将文件的编码更改为UTF-8。选择该文件,然后右键单击以打开其属性窗口。选择文本文件编码为其他UTF-8。 应用并保存更改。

  1. enterName=Geben Sie Ihren Namen
  2. clickMe=Klick mich
  3. applicationTitle=Anwendung Internationalisierung Demonstration
  4. greeting=Hallo {0}

步骤3:指定编译器选项

  • 右键单击项目并选择属性。

  • 选择Flex编译器,并将以下内容添加到“其他编译器参数"设置中:

  1. -locale en_US de_DE
  • 右键单击项目并选择属性。

  • 选择Flex构建路径,然后将以下内容添加到源路径设置:

  1. src\locale\{locale}

内部化示例

现在让我们按照以下步骤来测试Flex应用程序中的内部化技术:

步骤描述
1 Flex - 创建应用程序章节中所述,在包 com.tutorialspoint.client 下创建名为 HelloWorld 的项目。
2修改 HelloWorld.mxml ,如下所述。 保持文件的其余部分不变。
3编译并运行应用程序,以确保业务逻辑按照要求工作。

以下是修改后的mxml文件 src / com.tutorialspoint / HelloWorld.mxml 的内容。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  3. xmlns:s="library://ns.adobe.com/flex/spark"
  4. xmlns:mx="library://ns.adobe.com/flex/mx"
  5. minWidth="500" minHeight="500">
  6. <fx:Metadata>
  7. [ResourceBundle("HelloWorldMessages")]
  8. </fx:Metadata>
  9. <fx:Style source="/com/tutorialspoint/client/Style.css"/>
  10. <fx:Script>
  11. <![CDATA[
  12. import mx.controls.Alert;
  13. [Bindable]
  14. private var locales:Array = [{label:"English", locale:"en_US"},
  15. {label:"German", locale:"de_DE"}];
  16.  
  17. private function comboChangeHandler():void
  18. {
  19. resourceManager.localeChain = [localeComboBox.selectedItem.locale];
  20. }
  21.  
  22. protected function clickMe_clickHandler(event:MouseEvent):void
  23. {
  24. var name:String = txtName.text;
  25. var inputArray:Array = new Array();
  26. inputArray.push(name);
  27. Alert.show(resourceManager.getString('HelloWorldMessages'
  28. ,'greeting',inputArray));
  29. }
  30. ]]>
  31. </fx:Script>
  32. <s:BorderContainer width="500" height="500" id="mainContainer"
  33. styleName="container">
  34. <s:VGroup width="100%" height="100%" gap="50"
  35. horizontalAlign="center" verticalAlign="middle">
  36. <s:Label id="lblHeader" fontSize="40"
  37. color="0x777777"
  38. text ="{resourceManager.getString('HelloWorldMessages'
  39. ,'applicationTitle')}"
  40. styleName="heading" width="90%" height="150"/>
  41. <s:Panel width="300" height="150">
  42. <s:layout>
  43. <s:VerticalLayout paddingTop="10" paddingLeft="10" />
  44. </s:layout>
  45. <s:HGroup >
  46. <s:Label
  47. text="{resourceManager.getString('HelloWorldMessages'
  48. ,'enterName')}"
  49. paddingTop="2"/>
  50. <s:TextInput id="txtName"/>
  51. </s:HGroup>
  52. <s:Button
  53. label="{resourceManager.getString('HelloWorldMessages','clickMe')}"
  54. click="clickMe_clickHandler(event)" right="10" />
  55. </s:Panel>
  56. <mx:ComboBox id="localeComboBox"
  57. dataProvider="{locales}" change="comboChangeHandler()"/>
  58. </s:VGroup>
  59. </s:BorderContainer>
  60. </s:Application>

准备好所有更改后,让我们以正常模式编译和运行应用程序,就像在 Flex - 创建应用程序中一样 章节。 如果一切顺利,您的应用程序,这将产生以下结果:[在线试用]

flex Internalization

使用语言下拉菜单更改语言并查看结果。

flex Internalization 2
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号