zoukankan      html  css  js  c++  java
  • Flex 国际化

    Flex 国际化(demo)

     

    在项目中新建一个locale的目录(src目录下);

    在locale目录下创建需要支持语言的子目录,如locale/zh_CN, locale/en_US;

    在这些子目录下新建properties文件(en_US.properties,zh_CN.properties),各目录下的属性文件需要 同名。属性文件的格式与java的属性文件相同,每行以"key=value"的形式列出键值对,以utf-8编码保存文件;

    编译mxml文件时加上 -locale=en_US,zh_CN -source-path=/locale/{locale}的选项;



    在flex的sdk下加入中文库(C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale)zh_CN



    Localizator.as文件内容如下:



    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")); 

                } 

            } 

       } 

    }



     



    internation.mxml文件如下:



    <?xml version="1.0" encoding="utf-8"?>

    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="init()">



     <mx:Script>

      <![CDATA[

       import util.Localizator;

       import mx.controls.Alert;

       [Bindable]

       private var localizator : Localizator = Localizator.getInstance();

      

      private function init():void {

       //初始化时设置的语言是用户系统的语言

        var crrlanguage:String =  Capabilities.language.toString();//获去用户系统语言

        if(crrlanguage == 'zh-CN' ){

         localizator.language = 'zh_CN';

        }else if(crrlanguage == 'en-US'){

         localizator.language = 'en_US';

        }else{

         Alert.show(crrlanguage+"其他语言");

        }

        

        }

      

       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>



    用到的文件在demo.rar里
  • 相关阅读:
    gRPC java 客户端,服务器端通讯使用json格式
    HDTV(1920x1080)码率和视频质量关系的研究 2 (实验结果)
    Fedora 18/19没有注销
    window API一天一练之邮槽
    在C语言环境下使用google protobuf
    Cantor展开式
    LeetCode题解:Rotate List
    不知不觉vs2012 update 4出来了
    http://download.csdn.net/detail/yanzi1225627/6548337
    【虚拟化实战】Cluster设计之一资源池
  • 原文地址:https://www.cnblogs.com/nianshi/p/1734245.html
Copyright © 2011-2022 走看看