- 浏览: 1464887 次
- 性别:
- 来自: 青岛人在北京
文章分类
最新评论
-
yhxf_ie:
azheng270 写道 永远是0知道答案了, inser ...
使用MySQL的LAST_INSERT_ID -
yhxf_ie:
insert了还是0... 可能还要设置些什么?
使用MySQL的LAST_INSERT_ID -
一如年少:
123123
Flex使用ribbit.com的服务给手机发送短信SMS -
pointdew:
poincare 写道您好,请教一个问题,如果我的 swf 文 ...
Flex:使用FlexPaper显示PDF文档 -
pointdew:
swf远程加载问题 : flexpaper无法加载http方式 ...
Flex:使用FlexPaper显示PDF文档
现在做的这个Flex项目需要进行国际化,这里总结一下
和java一样,Flex2也可以使用.properties文件实现国际化,使用flex的mx.resources.ResourceBundle类来读取properties文件。同样也可以在Flex Builder2中安装Properties Editor插件来写properties文件。
1.创建一个Flex项目
2.在这个项目中创建 locale 文件夹
3.在 locale 文件夹中添加2个properties文件,如下
en_US.properties
- label1=Hello World!
- label2=Welcome!
zh_CN.properties
- label1=\u5927\u5bb6\u597d\uff01
- label2=\u6b22\u8fce\uff01
4.将 locale 文件夹添加为flex项目的source path (两个方法)
a)右击项目 -> properties -> Flex Compiler -> 在additional compiler arguments中添加 -sp locale
b)右击项目 -> properties -> Flex Build Path -> Source path -> add Folder -> 选中locale文件夹即可
现在开始写代码了
- package util {
- import flash.events.EventDispatcher;
- import flash.events.IEventDispatcher;
- import flash.events.Event;
- import mx.resources.ResourceBundle;
- public class Localizator extends EventDispatcher {
- //采用单例模式
- private static var _instance : Localizator;
- private var _language : String;
- //这里的resource名应与.properties文件名相同
- [ResourceBundle("en_US")]
- private var lang_en_US:ResourceBundle;
- [ResourceBundle("zh_CN")]
- private var lang_zh_CN:ResourceBundle;
- [Bindable]
- private var currRes:ResourceBundle;
- public function Localizator(language : String = "en_US") {
- selectLanguage(language);
- }
- public static function getInstance(language : String = "en_US"):Localizator {
- if (_instance == null) {
- _instance = new Localizator(language);
- }
- return _instance;
- }
- private function selectLanguage(language : String):void {
- this._language = language;
- if (_language == "en_US") {
- this.currRes = lang_en_US;
- } else if (_language == "zh_CN") {
- this.currRes = lang_zh_CN;
- } else {
- this.currRes = lang_en_US;
- }
- }
- [Bindable(event="languageChange")]
- public function getText(key:String):String {
- return this.currRes.getString(key);
- }
- public function get language():String {
- return this._language;
- }
- public function set language(language : String):void {
- if (this._language != language) {
- selectLanguage(language);
- dispatchEvent(new Event("languageChange"));
- }
- }
- }
- }
主程序代码
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script>
- [CDATA[
- import util.Localizator;
- [Bindable]
- private var localizator : Localizator = Localizator.getInstance();
- private function changeLanguage(language:String):void {
- localizator.language = language;
- }
- ]]
- </mx:Script>
- <mx:Label id="label1" x="10" y="10" text="{localizator.getText('label1')}" width="152" height="20" fontSize="12" fontWeight="bold"/>
- <mx:Label id="label2" x="10" y="38" text="{localizator.getText('label2')}" width="144" height="22" fontSize="12" fontWeight="bold"/>
- <mx:Button x="10" y="68" label="Chinese" click="changeLanguage('zh_CN')"/>
- <mx:Button x="88" y="68" label="English" click="changeLanguage('en_US')"/>
- </mx:Application>
OK,编译运行就可以看到结果了。
另外有些问题需要说明
1.properties文件须使用UTF-8编码
2.(Flex supports static inclusion of localized resources, but not dynamic retrieval of resources at run time.) Flex2是将properties文件编译到swf文件中的,目前还不支持动态读取外部properties文件
3.如果保存或编译代码时,遇到Unable to resolve a class for ResourceBundle: en_US_properties问题,大可放心,这是Flex Builder2的bug,只需要在main menu(顶部菜单)中选 Project -> Clean... 就可以了。或者将上面的Localizator.as随便空一行再保存编译一下,这个error也会消失,呵呵。
参考
Flex 2 Developer's Guide -> Localizing Flex Applications
http://flexme.wordpress.com/2007/07/11/internationalization-in-flex/
http://www.deitte.com/archives/2006/10/using_resource.htm
http://www.zhuoqun.net/article.asp?id=267
- flextest.rar (151.9 KB)
- 描述: source code 和 swf
- 下载次数: 303
评论
Flex 3:Feature Introductions: Runtime Localization
http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:_Runtime_Localization
Internationalizing Flex 2 Apps Pt 2
http://jeff.mxdj.com/internationalizing_flex_2_apps_pt_2.htm
发表评论
-
Flex4中文视频教程 - RIAMeeting
2010-04-23 10:48 6844RIAMeeting翻译的Flex4中文视频教程, 地址 ht ... -
Flash Flex 开源游戏引擎
2010-03-28 21:18 7235今天去了 9RIA.com 的北京天地会活动, 会上介绍了一些 ... -
几十个 ActionScript 3.0 APIs for Flex, Flash, AIR
2009-12-22 11:54 4197开发过程中使用API可以节省时间,这里有几十个API,它们可以 ... -
Flex:使用FlexPaper显示PDF文档
2009-12-15 17:03 35474FlexPaper是一个开源的轻量级文档显示组件,被设计用来与 ... -
Flex白板画图例子
2009-06-21 18:56 8140这个程序是从公司2007年做的一个项目中抽取出来的部分代码完成 ... -
Flex使用ribbit.com的服务给手机发送短信SMS
2009-06-13 15:10 3112http://www.ribbit.com/ 可以将语音通 ... -
Flex鼠标移到Label上显示手型useHandCursor
2009-05-08 11:28 5673要想鼠标在Label上显示为手型,需要设置3个属性 & ... -
Flex3与EJB3的WebService通讯
2009-04-18 14:20 3748项目中使用了Flex3 + EJB3 + WebService ... -
CodeBehind and DI 分离MXML中的ActionScript
2009-04-09 20:27 2744你是否开始厌倦在 mxml 中写 <mx:Script& ... -
De MonsterDebugger开源的Flex运行时调试器
2009-04-09 15:53 4089De MonsterDebugger http://www. ... -
Flex组件中PopUpManager在全局坐标中心弹出窗口
2009-04-02 19:52 5040在Flex的某个组件中使用 var somePopupWi ... -
在JBoss4.2中放置crossdomain.xml解决flex3跨域访问WebService问题
2009-03-31 20:54 5763Flex访问部署在JBoss4.2上的WebService时报 ... -
使用Flex3的Import Web Service功能
2009-03-28 21:36 2516在FlexBuilder的菜单上选 Data -> I ... -
使用KitchenSync和CASALib延迟(delay)执行Flex的function
2009-02-25 18:26 3427要延迟(delay)执行Flex的function,或按顺序同 ... -
Flex中解决Error #2044 securityError
2009-02-25 16:54 6654在FlexBuilder中运行app没有问题,复制项目的 bi ... -
Flex中加载Flash CS3制作的swf文件
2009-02-14 20:37 6315Flex加载Flash CS3制作的swf文件, 看Demo ... -
Flex视频教学 (RIAMeeting翻译Flex in a Week)
2008-12-01 00:03 4347此系列Flex视频教学是基于Adobe官方的Flex in a ... -
Flex中文API (Adobe官方)
2008-08-19 10:03 21534Adobe推出的中文API http://livedocs ... -
RIAMeeting - Flash Media Server 3
2008-07-26 22:08 3267这次是RIAMeeting的第七次 ... -
Mate Flex Framework
2008-07-22 11:29 3171Mate 是一个基于标签(tag-based)的事件驱动(ev ...
相关推荐
随着互联网的全球化发展,软件产品的用户群体不再局限于某一特定地区或国家,因此对于开发者来说,实现软件的国际化(Internationalization,简称i18n)变得越来越重要。Flex作为一款曾经广泛应用于Web前端开发的...
10. **Accessibility and Internationalization**: Flex API考虑了无障碍访问和国际化需求,提供了相应的API,使应用程序能适应不同的语言和辅助技术。 11. **Flex Builder/IDE Support**: Adobe Flex Builder(现...
为了满足不同用户的需求,Flex应用应考虑可访问性(accessibility)和国际化(internationalization)。例如,可以为视障用户设置键盘导航,为多语言环境提供字符串资源文件。 10. **版本控制和代码管理** 开发...
“国际化”(Internationalization,简称i18n)表示该项目支持多种语言,适应全球用户的需求。这通常涉及到资源文件的管理,如使用XML或.properties文件存储不同语言的文本,以及程序中动态加载和切换这些资源的能力。...
2. **配置项目**:在Flex项目中,需要设置国际化的支持。这可以通过修改`.actionScriptProperties`和`.flexProperties`文件来完成。在`.actionScriptProperties`中,启用`locale`属性,并指定默认语言。在`....
- **使用Flex的国际化特性:** Sample Flex Viewer支持多种语言环境,可以通过Flex内置的国际化支持来实现。 - **本地化设置:** 可以为不同地区设置不同的语言资源文件,实现本地化。 **5.4 日志和错误处理** ...
3. **Internationalization (i18n)**:内置的国际化支持使Web服务能够提供多语言内容。 4. **Caching**:缓存机制可以提高性能,减少不必要的计算和服务器负载。 5. **Security**:Spring Security可以集成到Web...
5. **国际化(Internationalization)**:支持多种语言,适应全球化的应用需求。 6. **无障碍功能(Accessibility)**:所有组件均遵循无障碍设计原则,确保所有用户都能无障碍地使用。 **结合使用CDK和Material ...
组件化则是在模块化基础上进一步细化,将用户界面分解成一系列可复用的组件。这有助于提高代码的可维护性和可扩展性。 ### 浏览器兼容性问题 处理浏览器兼容性问题通常涉及使用polyfills来填充旧版本浏览器的功能...
9. **Internationalization (i18n)**:Angular Material 支持多语言,包括标签和提示文本的国际化处理。 10. **Integration with Angular Forms**:Angular Material 无缝集成了 Angular 的表单系统,可以使用 `...