unit Funcoes_Traducao_u;
{Objetivo:Traduzir automaticamente todas as mensagens do inglês Motivo: O UniGUI da versão atual não tem função de localização das mensagens internas doDelphiNoTUniServerModule tem a propriedade ExtLocate que tem que ficar pt_BR para tradução de algumas mensagens para portugues, mas isso será somente para algumas e para Web.Usar o tradutor do delphi vai duplicar o projeto e complicar o processo de desenvolvimento.Fonte: http://leandropiga.nothus.com.br/?p=38Forma de utilização:Basta adicionar essa unit no projeto.Atualizações:Para traduzir outras mensagens, deve-se buscar nos arquivos de constantes do delphi (Windows,Consts,DBConsts,VDBConsts) a identificação da mensagem e substituir ela conforme abaixo pelo novo nome.}
interface
uses
Windows,Consts,DBConsts,VDBConsts;
procedure
SetResourceString(AResString:PResStringRec;ANewValue:PChar);
constSNewMsgDlgConfirm:PChar='Confirmação';SNewMsgDlgYes:PChar='Sim';SMewMsgDlgNo:PChar='Não';SNewMsgDlgOK:PChar='Ok';SNewMsgDlgCancel:PChar='Cancelar';SNewDeleteRecordQuestion:PChar='Excluir Registro?';SNewDeleteRecord:PChar='Excluir Registro?';
implementation
procedure
SetResourceString(AResString:PResStringRec;ANewValue:PChar);varPOldProtect: DWORD;beginVirtualProtect(AResString,SizeOf(AResString^), PAGE_EXECUTE_READWRITE,@POldProtect);AResString^.Identifier:=Integer(ANewValue);VirtualProtect(AResString,SizeOf(AResString^),POldProtect,@POldProtect);end;
initialization
SetResourceString(@SMsgDlgConfirm,SNewMsgDlgConfirm);SetResourceString(@SMsgDlgYes,SNewMsgDlgYes);SetResourceString(@SMsgDlgNo,SMewMsgDlgNo);SetResourceString(@SMsgDlgOK,SNewMsgDlgOK);SetResourceString(@SMsgDlgCancel,SNewMsgDlgCancel);SetResourceString(@SDeleteRecordQuestion,SNewDeleteRecordQuestion);SetResourceString(@SDeleteRecord,SNewDeleteRecord);
end.