Rápido tutorial sobre internacionalização
-----------------------------------------

    O MIOLO utiliza o gettext para proporcionar a internacionalização dos módulos/programas. Por isso, é fundamental que o PHP tenha sido compilado com a opção --with-gettext 

    Para criar uma tradução, devemos saber que existem dois tipos de arquivos, .po e .mo:
    - .po : são os arquivos fonte das traduções. Nesses arquivos são definidas as "strid", que identificam as strings a serem traduzidas e as "strmsg", que correspondem às devidas traduções.
    - .mo : são os arquivos binários utilizados pelo gettext para encontrar as traduções. Esses arquivos são obtidos após executar o comando msgfmt.

    Exemplo:
    Suponhamos que exista um módulo chamado abcde. Para este módulo, deverá existir o arquivo abcde.po que contém a identificação e as respectivas traduções das strings. Para gerar o catálogo binário .mo deve-se executar o comando msgfmt da seguinte maneira: 

       msgfmt -f abcde.po -o abcde.mo



Tradução no MIOLO
-----------------
    
    Antes de mais nada, no arquivo miolo.conf deve ser especificada o tipo de idioma a ser utilizado e o caminho onde os arquivos são encontrados.
    Para ter acesso às strings traduzidas, deve-se utilizar a função _M("string","module") do MIOLO, onde "string" identifica a string que deverá ser localizada e traduzida e "module", que é o módulo, indica o arquivo que contém a tradução.

    Utilizando o nosso exemplo anterior, suponhamos que num certo arquivo do módulo abcde exista a string chamado "hoje" e que deverá ser traduzida para os outros idiomas. Para isso, utilizaremos a função da seguinte maneira: 

       _M("hoje","abcde")



Localização dos arquivos de traduções
-------------------------------------

    Como foi escrito anteriormente, o MIOLO utiliza o arquivo abcde.mo para localizar as traduções do módulo/programa abcde. 

    Pergunta: como proceder quando existem traduções para mais idiomas?
    
    Respota: seguindo o padrão do linux, todas os arquivos de traduções no MIOLO são colocados nos sub-diretórios do diretório "locale". Esses sub-diretórios identificam o nome dos idiomas nos quais os respectivos arquivos com as traduções serão encontrados. 
Dessa forma, nada impediria que você utilizasse o diretório /usr/share/locale para armazenar os arquivos de traduções, desde que esteja assim configurado no miolo.conf

    Supondo que o módulo abcde tenha sido escrito em inglês e possua traduções para português-Brasil e francês, a estrutura dos diretório seria algo do tipo:

    /usr/local/miolo/locale
                       |
                       +----/pt_BR
                       |       |
                       |       +----/LC_MESSAGES
                       +----/fr
		             |
                             +----/LC_MESSAGES
		       
    A configuração no miolo.conf, admitindo que queira-se utilizar a tradução para português-Brasil, ficaria assim:

$MIOLOCONF['i18n']['locale']   = '/usr/local/miolo/locale';
$MIOLOCONF['i18n']['language'] = 'pt_BR';

A partir da versão 1.0-RC5, essa configuração também poderá ser incluida no arquivo nome_modulo.conf.


Vilson Cristiano Gartner
vgartner@univates.br