Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Classe I18nUtil.as
    Método getLabel

    Bloco de código
    languageactionscript3
    public static function getLabel(label:String, stringID:String=null):String {
    	var uLabel:String = "";
    	var runtimeMode:String = PropertyUtil.getInstance().getProperty("runtime.mode", "production");
    	var trans:String = "";
    	if(stringID==null){
    		if(label!=null){
    			uLabel = stringReplaceAll(label, " ", "_");
    			trans = I18NService.translate(uLabel);	
    		}else{
    			label = "";
    		}				
    		
    		if(trans == uLabel){
    			trans = label;
    		}				
    	}else{
    		trans = I18NService.translate(stringID);
    		
    		if (trans == stringID) {
    			trans = label;
    			if (runtimeMode != "production") {
    				trans += "#";
    			}
    		}
    	}
    	
    	return trans;
    }
  2. Classe I18NService.as
    Método translate

    Bloco de código
    languageactionscript3
    public static function translate(key:String):String {
    	var result:String = strings.getValue(key) as String;
    	
    	if (result == null) {
    		
    		result = literals[key] as String;				
    		
    	}
    	
    	if(result == null){
    		result = key;
    	}
    	
    	return result;
    }
    Informações

    Os métodos são do tipo "static", portanto, para utilizá-los, não se faz necessidade de instanciar a classe em que os mesmos foram definidos.

     

    Em ambos os métodos o desenvolvedor pode optar por utilizar a stringId ou a própria literal em português. As formas de utilização são as seguintes:

     

    Antigo:

    Bloco de código
    languageactionscript3
    <mx:Button label="{I18NService.translate('universal.save.button')}"
    			   click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />

    Novo:

    Bloco de código
    languageactionscript3
    <mx:Button label="{I18NService.translate('Salvar')}"
    			   click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />

    Antigo:

    Bloco de código
    languageactionscript3
    <mx:Button label="{I18nUtil.getLabel('Salvar', 'universal.save.button')}"
    			   click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />

    Novo:

    Bloco de código
    languageactionscript3
     <mx:Button label="{I18nUtil.getLabel('Salvar')}"
    			   click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />
    Nota

    Os métodos utilizados na exemplificação acima funcionam tanto no modo de utilização antiga quanto na nova.

     

    Para utilizar as classes citadas acima é necessário adicionar a dependência abaixo no pom.xml do seu projeto Flex.

    Bloco de código
    languagehtml/xml
    <dependency>
    	<groupId>com.datasul.framework</groupId>
    	<artifactId>datasul-framework-i18n-flex</artifactId>
    	<version>${pom.version}</version>
    	<type>swc</type>
    	<scope>merged</scope>
    </dependency>

Metadados

Foi atualizado o método de tradução GET-TRANSLATION para receber como parâmetro não mais o stringId, e sim a palavra/texto em português como pode-se visualizar no exemplo abaixo.

...