Histórico da Página
...
Para atender a esta necessidade, foi preciso adaptar o método de tradução já existente das interfaces Flex e Metadados.
Para entender melhor o que há de novo, segue um exemplo:
...
Classe I18nUtil.as
Método getLabelBloco de código language actionscript3 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; }
Classe I18NService.as
Método translateBloco de código language actionscript3 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 language actionscript3 <mx:Button label="{I18NService.translate('universal.save.button')}" click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />
Novo:
Bloco de código language actionscript3 <mx:Button label="{I18NService.translate('Salvar')}" click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />
Antigo:
Bloco de código language actionscript3 <mx:Button label="{I18nUtil.getLabel('Salvar', 'universal.save.button')}" click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" />
Novo:
Bloco de código language actionscript3 <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 language html/xml <dependency> <groupId>com.datasul.framework</groupId> <artifactId>datasul-framework-i18n-flex</artifactId> <version>${pom.version}</version> <type>swc</type> <scope>merged</scope> </dependency>
...
Met
Âncora | ||||
---|---|---|---|---|
|
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.
...