Histórico da Página
...
Para não prejudicar o legado já desenvolvido em Flex, na utilização da metodologia de tradução, foram reaproveitados os métodos já existentes.
São eles:
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 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 | ||
---|---|---|
| ||
<mx:Button label="{I18NService.translate('universal.save.button')}"
click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" /> |
Novo:
Bloco de código | ||
---|---|---|
| ||
<mx:Button label="{I18NService.translate('Salvar')}"
click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" /> |
Antigo:
Bloco de código | ||
---|---|---|
| ||
<mx:Button label="{I18nUtil.getLabel('Salvar', 'universal.save.button')}"
click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" /> |
Novo:
Bloco de código | ||
---|---|---|
| ||
<mx:Button label="{I18nUtil.getLabel('Salvar')}"
click="this.controller.saveCustomer()" styleName="focalButton" id="saveButton" /> |
...
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 | ||
---|---|---|
|
...
Met
Âncora | ||||
---|---|---|---|---|
|
Foi atualizado o método de tradução GET-TRANSLATION para .
Este método deixou de receber como parâmetro não mais o stringId, e sim a literal de tradução em formato stringId (<contexto de negócio>.<literal>.<contexto de utilização>) e passou a receber a palavra/texto em português como pode-se visualizar no exemplo parâmetro, conforme abaixo.
Antigo:
Bloco de código | ||
---|---|---|
| ||
DEFINE
...
VARIABLE
...
translatedText
...
AS
...
CHARACTER.
...
translatedText
...
=
...
GET-TRANSLATION("universal.close.button").
Novo:
Bloco de código | ||
---|---|---|
| ||
DEFINE
...
VARIABLE
...
translatedText
...
AS
...
CHARACTER.
...
translatedText
...
=
...
GET-TRANSLATION("Fechar").