Até a versão 11 do sistema Protheus, os textos passíveis de tradução de um programa eram armazenados em arquivos include (*.CH).
A separação por idiomas ocorria dentro do próprio arquivo .CH através de diretivas de compilação que selecionavam o idioma desejado.
A partir da versão 12 passou-se a utilizar um novo modelo, composto por arquivos .CH e RESOURCES de compilação. Os resources são arquivos que são inseridos no repositório mas não são programas ADVPL. Existem outros resources no repositório do Protheus, como por exemplo as imagens .BMP, .JPG e PNG.
O modelo de resource vai facilitar a criação de outros idiomas no futuro, permitindo a inserção de novos idiomas sem a recompilação de fontes no repositório.
O arquivo .CH foi simplificado, passando a fazer a “ponte” entre os programas atuais e as funções de leitura dos resources e dos termos Flavour.
No novo modelo, além do arquivo .CH vinculado a cada fonte, temos um arquivo de resource por idioma. Hoje tratamos 4 idiomas, sendo o Português de Portugal tratado como idioma:
- Português do Brasil - identificador "pt-br"
- Português de Portugal - identificador "pt-pt"
- Espanhol - identificador "es"
- Inglês - identificador "en"
Dessa forma, para cada CH cadastrado temos 4 arquivos TRES (Translate RESource).
Exemplo: Para o programa MATA410 (pedido de vendas), temos vinculados os seguintes resources:
- MATA410_pt-br.TRES
- MATA410_pt-pt.TRES
- MATA410_es.TRES
- MATA410_en.TRES
O arquivo .CH é tratado da mesma forma que na versão 11, sendo aplicado ao fonte no momento de sua compilação. Já os arquivos .TRES são “compilados” (ou inseridos) no repositório assim como recursos de imagem.
Tecnicamente falando, os arquivos de resource são independentes do programa (diferentemente dos CHs) podendo ser compilados antes ou depois do fonte. O importante é que no momento de execução do sistema o resource tenha sido compilado no repositório.
Estrutura do resource
O arquivo .TRES é um arquivo que contém basicamente o código da string e seu conteúdo. O resource pode ser aberto por um editor de texto comum (estilo notepad) para consulta do conteúdo das strings. Desencorajamos fortemente a edição manual dos arquivos de resource e sugerimos apenas o uso de CHs e resources gerados pelas ferramentas oficiais da TOTVS. O resource contém ainda a informação do país a qual a string se refere.
Lembramos que dentro de um mesmo idioma podemos ter exceções por país relativas à localização do produto (uma dada informação pode ser diferente entre Argentina e México, por exemplo).
VERSÃO 11
Os arquivos CH da versão 12 não são compatíveis com os da versão 11. Seguem exemplos de CH da versão 11 e 12:
Versão 11
Versão 12
Exemplo de arquivo .TRES, português do Brasil.