`
czwlucky
  • 浏览: 48863 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

Flex动态国际化

    博客分类:
  • Flex
阅读更多

1、C:\>copylocale.exe en_US zh_CN      Flex默认只支持两种语言en_US 和 ja_JP,可以通过该命令生成对其他语言的支持(注:可以对Flex安装路径设置环境变量)

     也可以通过编译命令生成(前题是复制出来一份资源文件,目录名为zh_CN(从en_US复制):compc -locale =zh_CN -source-path=frameworks/projects/framework/bundles/zh_CN/src -include-resource-bundles=collections,containers,controls,core,effects,formatters,logging,SharedResources,skins,states,

styles,validators -output=frameworks/locale /zh_CN/framework_rb.swc  这样做的好处是,如果你希望改变系统的国际化信息,可以通过修改这里的资源文件来实现,不过,最好不要这样做,对于多人开发来说这不是通用的办法。也不利于维护。

 

2、mxmlc -locale=en_US -source-path={locale} -include-resource-bundles=containers,skins,effects,controls,SharedResources,collections,core,styles,messages -output=Resources_en_US.swf 

注: -include-resource-bundles=containers,skins,effects,controls,SharedResources,collections,core,styles ,messages红色标记部分一个也不要少,否则在某些时候可能会报错的

 

 

3、<project> --> properties --> Flex Compiler   --> Additional compiler arguments: -locale

     页面上写上:

    <mx:Metadata>
        [ResourceBundle("test")]  (注:test就是您在locale目录下创建资源文件时的文件名)
    </mx:Metadata>

    很关键的步骤,不然会报"Unable to resolve resource "test" for locale {locale}

 

4、<mx:Label text="{resourceManager.getString('test', 'key')}"/> 从默认语言中加载

 

5、下面这些动作由谁触发,由您来决定:

var resourceModuleURL:String="Resource_" + 您选择的语言(如:zh_CN,必须与您生成的资源文件对应)+ ".swf";
var eventDispatcher:IEventDispatcher=resourceManager.loadResourceModule(resourceModuleURL);
eventDispatcher.addEventListener(ResourceEvent.COMPLETE, completeHandler);

 

private function completeHandler(event:ResourceEvent):void
{
                resourceManager.localeChain=[localeComboBox.selectedItem];
}

 

记录一下:compc -locale=zh_CN -source-path=frameworks/projects/framework/bundles/zh_CN/src -include-resource-bundles=collections,containers,controls,core,effects,formatters,logging,SharedResources,skins,states,styles,validators -output=frameworks/locale/zh_CN/framework_rb.swc

分享到:
评论
2 楼 czwlucky 2013-07-02  
实际项目中很少会有这样的需求,能不这样做就不这样做
1 楼 zhxl852000 2013-01-05  
      ,最好不要这样做,对于多人开发来说这不是通用的办法。也不利于           

相关推荐

Global site tag (gtag.js) - Google Analytics