Árvore de páginas

Versões comparadas

Chave

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

...

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

 


Objetivo

O objetivo deste guia é apresentar os procedimentos necessários para adaptar a plataforma fluig Fluig para ser traduzida para outros idiomas.

 


Conceito e configuração

O conceito de internacionalização ou i18n (que, por vezes, também é chamado de "Localização") consiste no desenvolvimento e/ou adaptação de um produto para o idioma de um ou mais países. O acrônimo "i18n" origina-se do inglês "internationalization", onde 18 é o número de letras entre o primeiro "i" e o último "n".

Na plataforma fluigFluig, o i18n é suportado na forma de arquivos de propriedades distintos para cada idioma. Sempre que for criado um projeto a partir do Fluig Studio, a estrutura de i18n será apresentada conforme o exemplo a seguir: 


 


Informações
titleNão se engane!

O nome do componente (widget, layout etc.) em questão coincide com o prefixo dos arquivos i18n. Este é o comportamento padrão do Studio, mas não é isso que fará com que as funções de i18n funcionem corretamente em seu componente. Dentro do arquivo application.info deve existir uma propriedade chamada locale.file.base.name. O importante é que o valor desta propriedade - esse sim - seja o mesmo que o prefixo dos arquivos i18n.

 


Utilização no desenvolvimento

...

Bloco de código
languagetext
codigo.da.label=Valor da Label

...


Arquivos de fontes freemarker (.ftl) e javascript (.js)

Quando é necessário referenciar o valor da tradução desejada, deve-se utilizar o código "${i18n.getTranslation('codigo.da.label')}".

Em arquivos .js a partir da versão 1.8.3 é possível utilizar o código "[=i18n.getTranslation('codigo.da.label')]" para evitar conflitos com template string.

Arquivo .ftl:

Bloco de código
languagexml
<div class="form-group">
	<label for="inputCode_${instanceId}">${i18n.getTranslation('codigo.da.label')}</label>
	<input type="text" class="form-control" id="inputCode_${instanceId}" />
</div>

...

Bloco de código
languagejs
var descricao = '[=i18n.getTranslation("codigo.da.label")]';
ou
var descricao = '${i18n.getTranslation("codigo.da.label")}';

...

Bloco de código
languagetext
codigo.da.label=Valor da Label
application.title=Título
application.description=Descrição do Componente
application.category=Categoria Escolhida

...


Mapeamento de caracteres (text file enconding)

...

Ou nas propriedades do próprio fonte:

 


Escape de caracteres (escape character)

...

Assim, independentemente do sistema operacional no qual o a plataforma Fluig é utilizado, os caracteres especiais sempre são mostrados corretamente. Para que esse processo seja feito de forma produtiva, pode-se utilizar uma das muitas ferramentas online de character escaping.