Que técnica seria o mínimo esforço para internacionalizar (pelo multi-linguagem menos) Aplicações Delphi existente?

StackOverflow https://stackoverflow.com/questions/233560

Pergunta

Eu desenvolvi cerca de 300 candidaturas que gostaria de fornecer com capacidades multi-linguagem independente do sistema operacional. Eu escrevi um tradutor just-in-time, mas isso é muito lento em aplicações com muitos componentes. O que você sugere que eu faça?

Foi útil?

Solução

Eu ouvi dizer que os componentes TsiLang são agradáveis, mas o seu olhar para um solução inplace ...

Eu usei GNU gettext para Delphi que faz exatamente a coisa que você quer, ele carrega as traduções a partir de um arquivo de texto e substitui o texto em seus componentes. Ele ainda tem um pas / DFM scanner para gerar automaticamente o arquivo de tradução Inglês.

Também é possível mudar automaticamente o seu código-fonte pascal para injetar o procedimento inplace gettext de suas cordas estáticas. Se não me engano ele apenas adiciona um sublinhado como função a ele, como abaixo.

ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

Devo dizer que tem sido 2 anos desde a última vez utilizado este método.

Uma coisa permanecerá problemática, os componentes Delphi não são habilitadas para Unicode (correções D2009 este), então quando você não alterar os componentes que você ainda vai ter suporte para outros idiomas limitados.

Outras dicas

Estamos usando TsiLang e estamos muito felizes com ele.

Um dos melhores pontos é que você pode pretranslate o projeto com um dicionário (que você cheio de traduções existentes).

Uma boa solução livre seria GNU gettext para Delphi . Ele tem alguns recursos não presentes no TsiLang - por exemplo, você pode colocar o conhecimento sobre a forma de contar as coisas (finais diferentes para um, dois, quatro, cento e dois, muitos ...) para o arquivo de tradução de modo que você don' t tem que ensinar cada programa para saber essas coisas.

Licença para a parte Delphi é muito permissiva, mas não tenho certeza de quanto as coisas GNU incluído irá afectar a sua aplicação.

Multilizer . É feito em Delphi e ele pode lidar com programas Delphi como nenhum outro com suporte especial para VCL. Você pode até mesmo refazer suas telas fácil para todas as línguas. Com Multilizer você pode usar técnicas diferentes para traduzir e executar o programa.

Delphi 2009 adicionou uma tradução Integrated Environment / Externa Tradução Gestor ITE e ETM estão agora disponíveis para Delphi e C ++ Builder.

O artigo de De Codegear: Novidades no Delphi e C ++ Builder 2009 , eles estado :

O Integrated Tradução Ambiente (ITE) é uma parte do IDE que simplifica a localização de seus projetos. ITE pode criar um novo projeto localizada a partir de um projeto existente. ITE não traduzir automaticamente o texto, mas fornece um diálogo listando todo o texto que precisa ser localizada e campos em que para introduzir o correspondente texto traduzido. Depois de ter introduzido o texto traduzido e construiu o projecto localizada, você pode definir outra idioma ativo e exibir um formulário no o texto localizado; você não tem que alterar locais e reinicie o sistema. Isso permite que você execute localização sem a necessidade de um sistema localizado.

O Gerenciador de Tradução Externa (ETM) é um aplicativo independente que obras com arquivos DFM e cadeias de texto no Código fonte. Embora ETM não permitem que você crie um novo localizada projeto, que faz prever um diálogo listando texto localizado eo texto traduzido, de forma semelhante a ITE.

Isto é o que eu pretendo tentar primeiro uma vez que eu estou no ponto que eu quero Internacionalizar o meu produto.

No entanto, para mim, a parte mais fácil é o de traduzir o programa. A parte mais difícil é traduzir o arquivo de ajuda.

Eu diria GNU gettext para Delphi em combinação com TMS Unicode Component Pacote (anteriormente livres sob TntWare) para obter suporte unicode nos componentes.

Para trabalhar com, ou ter tradutores trabalhar, os arquivos gettext eu recomendo olhando para a cruz-plataforma livre Poedit que pode editar os arquivos .po.

Apenas para mencionar cxLocalizer Se você possui componentes DexExpress.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top