wiki:phpgwapi/internacionalizacao

Version 2 (modified by wmerlotto, 16 years ago) (diff)

--

Internacionalização do Expresso Livre

Estrutura:

Cada modulo possui seus arquivos de linguagem dentro da pasta nomedomodulo/setup/, o nome destes arquivos segue um padrão que é phpgw_ seguido da sigla da linguagem com a extensão .lang, por exemplo, a sigla para a linguagem português do Brasil é pt-br, então cada módulo que possui internacionalização para português precisa ter dentro da sua pasta setup um arquivo chamado phpgw_pt-br.lang com as strings utilizadas pelo módulo.

Estes arquivos de linguagem tem a seguinte estrutura: String Chave <tab> Nome do modulo <tab> sigla da linguagem <tab> String na linguagem destino, abaixo segue um exemplo de um arquivo de linguagem Português do Brasil do modulo ExpressoMail?:

	Last    expressoMail1_2 pt-br   Última
	Less    expressoMail1_2 pt-br   Menos
	Link    expressoMail1_2 pt-br   Link

Estes arquivos são lidos pelo modulo Setup e escritos no banco de dados do ExpressoLivre? onde são acessados pelos modulos.

Instalação de uma nova linguagem:

Para instalar uma nova linguagem, é necessário que os arquivos de linguam estejam nos diretorios corretos, após isto, é preciso adicionar a linguagem no arquivo expresso/setup/lang/languages ( onde expresso é o diretorio da sua instalação do ExpressoLivre? ) seguindo o padrão sigla <tab> Nome do idioma, Ex: pt-br Português do Brasil. Feito isso, acesse pelo browser o modulo setup do expresso ( http://seuexpresso.com/setup), faça o login e clique no botão Manage Languages, a sua nova linguagem aparecerá na lista de linguagens disponiveis, agora é só clicar no botão Install.

Carregando traduções para o banco de dados

Utilizando a API de internacionalização do Expresso Livre:

Para utilizar string internacionalizadas no código do ExpressoLivre? é simples, a API do eGroupware disponibiliza a função php:

    function lang($key,$m1='',$m2='',$m3='',$m4='',$m5='',$m6='',$m7='',$m8='',$m9='',$m10='');

onde $key é a string a ser internacionalizada e $m1..$m10 são parâmetros opcionais que podem ser inseridos seus valores dentro de $key da seguinte maneira, os valores %1 ... %10 serão substituidos pelos valores de $m1 ... $m10. ex:

    lang("Internacionalizando o %1.", "ExpressoLivre");

irá retornar "Internacionalizando o ExpressoLivre?." A string de retorno será na linguagem que está configurada nas opções do usuario, desde que $key esteja no arquivo de linguagem.

Internacionalização nos módulos que utilizam JavaScript?:

ExpressoMail?:

No ExpressoMail? 1.2, as strings dos arquivos JavaScript? são internacionalizadas usando a função JavaScript:

    function get_lang(_key,_arg1,_arg2,_arg3,_arg4);

Esta função tem a mesma estrutura da função php lang, por exemplo:

    get_lang("Internacionalizando o %1.", "ExpressoLivre");

irá retornar "Internacionalizando o ExpressoLivre?." na linguagem configurada para o usuario.

ContactCenter?:

No ContactCenter? a internacionalização das strings em código JavaScript? funciona de uma maneira um pouco diferente, este módulo não possui uma função em JavaScript? para a internacionalização, por isso é utilizado a função do lang do php. Para fazer isso, é necessário adicionar as strings que serão internacionalizadas como elementos hidden no html, esses elementos são lidos e armazenados em variáveis JavaScript?, para poderem ser utilizados. E isto é feito assim, os elementos hidden são adicionados no arquivo index.tpl ( contactcenter/templates/default/index.tpl ) Ex:

    <input id="cc_qa_save" type="hidden" value="{cc_qa_save}">

A internacionalização da string é feita no arquivo class.ui_data.inc.php ( contactcenter/inc/class.ui_data.inc.php ), populando o campo do template. Ex:

    $GLOBALS['phpgw']->template->set_var('cc_qa_save',lang('Save'));

No arquivo JavaScript? é carregado o campo do template para uma variavel. Ex:

    var lang_save = Element('cc_qa_save').value;

Attachments