`

flex4国际化

    博客分类:
  • flex
阅读更多

 

 

国际化变得如此简单

<?xml version="1.0"?>
<!-- l10n/CreateReplacementBundle.mxml -->
<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    creationComplete="initApp()"> 

    <fx:Script><![CDATA[
        import mx.resources.ResourceBundle;
        import mx.controls.Alert;

        [Bindable]
        private var locales:Array = [ "es_ES","en_US" ];

        private function initApp():void {
            /* Initialize the ComboBox to the first locale in the locales Array. */
            localeComboBox.selectedIndex = locales.indexOf(resourceManager.localeChain[0]);
        }

        private function registrationComplete():void {
            Alert.show(resourceManager.getString('RegistrationForm', 'thanks'));
        }  

        private function comboChangeHandler():void {
            /* Set the localeChain to either the one-element Array
               [ "en_US" ] or the one-element Array [ "es_ES" ]. */
            resourceManager.localeChain = [ localeComboBox.selectedItem ];            
        }
        
        private function createReplacementBundle():void {
            var newRB:ResourceBundle = new ResourceBundle("en_US", "RegistrationForm");
            
            newRB.content["registration_title"] = "Registration Form";
            newRB.content["submit_button"] = "Submit This Form";
            newRB.content["personname"] = "Enter Your Name Here:";
            newRB.content["street_address"] = "Enter Your Street Address Here:";
            newRB.content["city"] = "Enter Your City Here:";
            newRB.content["state"] = "Enter Your State Here:";
            newRB.content["zip"] = "Enter Your ZIP Code Here:";
            
            resourceManager.addResourceBundle(newRB);            
            resourceManager.update();            
        }
    ]]></fx:Script>

    <s:layout> 
        <s:VerticalLayout/> 
    </s:layout>

    <fx:Metadata>
        [ResourceBundle("RegistrationForm")]
    </fx:Metadata> 

    <mx:Image source="{resourceManager.getClass('RegistrationForm', 'flag')}"/>

    <mx:ComboBox id="localeComboBox" 
        dataProvider="{locales}"
        change="comboChangeHandler()"/>

    <mx:Form>
        <mx:FormItem label="{resourceManager.getString('RegistrationForm','personname')}">
            <mx:TextInput/>
        </mx:FormItem>
        <mx:FormItem label="{resourceManager.getString('RegistrationForm','street_address')}">
            <mx:TextInput/>
        </mx:FormItem>
        <mx:FormItem label="{resourceManager.getString('RegistrationForm','city')}">
            <mx:TextInput/>
        </mx:FormItem>
        <mx:FormItem label="{resourceManager.getString('RegistrationForm','state')}">
            <mx:TextInput/>
        </mx:FormItem>
        <mx:FormItem label="{resourceManager.getString('RegistrationForm','zip')}">
            <mx:TextInput/>
        </mx:FormItem>
    </mx:Form>
    
    <s:Button id="b1" 
        label="{resourceManager.getString('RegistrationForm','submit_button')}" 
        click="registrationComplete()"/>
    
    <s:Button id="b2" 
        label="Change Bundle" 
        click="createReplacementBundle()"/>
    
</s:Application>

 

更多参考:

官网:http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7f2c.html

ResourceManager:http://docs.huihoo.com/flex/4/mx/resources/ResourceManager.html

ResourceBundle:http://docs.huihoo.com/flex/4/mx/resources/ResourceBundle.html

http://www.cnblogs.com/zhych/archive/2009/11/02/1594268.html

http://developer.51cto.com/art/201007/214627.htm

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics