--- title: Internacionalização (i18n) source: https://tdn.totvs.com/pages/viewpage.action?pageId=185738869 path: \Plataforma Documentação técnica\Recurso de Páginas e Widgets (WCM)\Estrutura de páginas\Internacionalização (i18n).md --- # Índice - 1 [Objetivo](#Internacionalização(i18n)-Objetivo) - 2 [Conceito e configuração](#Internacionalização(i18n)-Conceitoeconfiguração) - 3 [Utilização no desenvolvimento](#Internacionalização(i18n)-Utilizaçãonodesenvolvimento) - 3.1 [Arquivos de fontes freemarker (.ftl) e javascript (.js)](#Internacionalização(i18n)-Arquivosdefontesfreemarker(.ftl)ejavascript(.js)) - 3.1.1 [Arquivo .ftl:](#Internacionalização(i18n)-Arquivo.ftl:) - 3.1.2 [Arquivo .js:](#Internacionalização(i18n)-Arquivo.js:) - 3.2 [Como traduzir propriedades do application.info?](#Internacionalização(i18n)-Comotraduzirpropriedadesdoapplication.info?) - 4 [Mapeamento de caracteres (text file enconding)](#Internacionalização(i18n)-Mapeamentodecaracteres(textfileenconding)) - 5 [Escape de caracteres (escape character)](#Internacionalização(i18n)-Escapedecaracteres(escapecharacter)) # Objetivo O objetivo deste guia é apresentar os procedimentos necessários para adaptar a plataforma 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 Fluig, o i18n é suportado na forma de arquivos de propriedades distintos para cada idioma. Sempre que for [criado um projeto a partir do Fluig Studio](http://tdn.totvs.com/display/fluig/Criando+um+projeto+Fluig+no+Studio), a estrutura de *i18n* será apresentada conforme o exemplo a seguir:  Nã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](Arquivo application.info.md) deve existir uma propriedade chamada [locale.file.base.name](http://tdn.totvs.com/display/fluig/Arquivo+application.info#Arquivoapplication.info-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 Nos arquivos i18n o cadastro deve ser feito da seguinte forma: ``` 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: ```