Jump to content

Internacionalizaçao do aplicativo


ar62
 Share

Recommended Posts

Olá pessoal, estou precisando codificar o meu aplicativo para várias linguas - inglês, português e francês -, isso na programação com Delphi 7. Caso alguém já tenha desenvolvido algo parecido e possa orientar-me na configuraçao, fico grato. Fico a aguardar por maiores informaçoes.

EDIT: português melhorado. thoga31

Link to comment
Share on other sites

Faz uma pesquisa por 'Resource File'. O habitual é criar ficheiros RC com todas as strings usadas pelo programa, associada a um valor numérico, para cada língua. Esses ficheiros são compilados com o Resource Compiler e depois linkados com o executável ou em DLLs separadas. No programa terás de aceder, pelo valor numérico, às string linkadas no executável ou carregando a DLL da lingua e seguir daí. Pode ser que o Delphi 7 suporte isto mais automáticamente mas não tenho experiência acima do 5.

Link to comment
Share on other sites

O proprio Delphi tem um modo de criar ficheiros de idiomas (Project --> Languages), mas não sei se o 7 já tinha. Aliás, nunca usei este sistema.

Das poucas vezes que criei aplicações multi-linguagem, usei o seguinte método.

Na aplicação, substituem-se todas as constantes e valores absolutos que contenham strings de interface (que se mostrem ao utilizador) por variáveis. Pessoalmente, prefiro que todas estas variáveis fiquem dentro de um Record, por mera organização.

Ex.:  ShowMessage('Olá Mundo');  passa a    ShowMessage(Lng.OlaMundo);

No inicio da aplicação, verifica-se a existencia de um ficheiro de idioma (mais à frente falamos deste)

- Se não existir, corre-se um procedimento que crie o idioma predefinido da aplicação

  * Atribui um valor a todas as variáveis de idioma

- Se existir, lê o ficheiro para:

  * Todas as variáveis de idioma

  * Atribui os valores de Caption e Text em todos os componentes visuais que tenham informação para o utilizador

A partir daqui o programa funcionará normalmente.

Caso o programa use forms ou outros componentes criados dinâmicamente (em RunTime), a atribuição das strings traduzidas terá de ser feita para essa form ou componente imediatamente depois da sua criação.

Quanto ao ficheiro de idiomas, pode ser um mero ficheiro de texto, banal, mas pessoalmente prefiro o seguinte:

Usar um TClientDataSet para trabalhar com o ficheiro.

Deste modo, o ficheiro de idiomas pode ser guardado como ficheiro XML e torna-se fácil para qualquer pessoa corrigir ou mesmo criar novos idiomas.

Ao mesmo tempo, não é problemático, porque se o ficheiro for inadvertidamente apagado, o programa funciona normalmente no idioma predefinido (por exemplo, o português)

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.