Nova estrutura de tradução do Protheus - arquivos .CH

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

 

                #define STR0001 "Protheus Sniffer"
                #define STR0002 "Ferramenta de diagnóstico do Protheus - Geração do Script de processamento"
                #define STR0003 "Identificador"
                #define STR0004 "Descrição"
                #define STR0005 "Versão"
                #define STR0006 "Marcar todos"
                #define STR0007 "Desmarcar todos"
                #define STR0008 "Geração do script cancelada !"
                #define STR0009 If( cPaisLoc $ "ANG|PTG""Erro na criação do ficheiro de script. Código -> ""Erro na criação do arquivo de script. Código -> " )
                #define STR0010 If( cPaisLoc $ "ANG|PTG""Ficheiro ""Arquivo " )

 

Versão 12

 

#DEFINE STR0001 FWI18NLang("SNFXFUN","STR0001",1)
#DEFINE STR0002 FWI18NLang("SNFXFUN","STR0002",2)
#DEFINE STR0003 FWI18NLang("SNFXFUN","STR0003",3)
#DEFINE STR0004 FWI18NLang("SNFXFUN","STR0004",4)
#DEFINE STR0005 FWI18NLang("SNFXFUN","STR0005",5)
#DEFINE STR0006 FWI18NLang("SNFXFUN","STR0006",6)
#DEFINE STR0007 FWI18NLang("SNFXFUN","STR0007",7)
#DEFINE STR0008 FWI18NLang("SNFXFUN","STR0008",8)
#DEFINE STR0009 FWI18NLang("SNFXFUN","STR0009",9)
#DEFINE STR0010 FWI18NLang("SNFXFUN","STR0010",10)

 

Exemplo de arquivo .TRES, português do Brasil. 

 

0001#STR0001#ALL#Protheus Sniffer
0002#STR0002#ALL#Ferramenta de diagnóstico do Protheus - Geração do Script de processamento
0003#STR0003#ALL#Identificador
0004#STR0004#ALL#Descrição
0005#STR0005#ALL#Versão
0006#STR0006#ALL#Marcar todos
0007#STR0007#ALL#Desmarcar todos
0008#STR0008#ALL#Geração do script cancelada !
0009#STR0009#ALL#Erro na criação do arquivo de script. Código ->
0010#STR0010#ALL#Arquivo

Atualizado em 23/09/2024
Este artigo foi útil?  
Agradecemos sua avaliação.