欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Flex动态国际化 博客分类: Flex Flex 

程序员文章站 2024-03-01 15:00:28
...

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

相关标签: Flex