terça-feira, 2 de agosto de 2016

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

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

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:
#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

REF:
http://tdn.totvs.com/pages/viewpage.action?pageId=181965465