Pergunta

Eu tenho várias aplicações grande MFC aqui, e convertê-los em qualquer outro formato é fora de questão. Estamos expandindo para outros mercados, e gostaria de fazer os aplicativos funcionam em outros idiomas e culturas.

Até agora, eu encontrei referências ocasionais, como o que fazer com o Visual C ++ versão 6, com uma menção que versões posteriores do MFC têm características adicionais relevantes. Pesquisando MSDN me dá instruções sobre como converter os aplicativos para Unicode, o que já fizemos. Não encontrei nada no MSDN sobre como fazer idiomas multilingue, uma vez que eles estão em Unicode, apenas algumas coisas mais antigas que utilizam o Google, e um livro sobre internacionalização usando VC ++ 6. (Estamos usando Visual Studio 2008 agora, em XP e Vista.)

Eu não faço nenhuma reivindicação para a força do meu Google-fu, e ficaria feliz em ser direcionado para as coisas que eu perdi.

É razoável usar os métodos da VC ++ 6, ou devo usar mais tarde apresenta?

Se eu usar recursos mais tarde do que isso, onde posso encontrar alguma referência a eles?

Existe algo que eu deveria se preocupar com outra do que a criação do local, convertendo todas as cordas aos recursos, e duplicar os recursos em diferentes idiomas?

posso encontrar mais coisas sobre .NET internacionalização, mas eu sou inexperiente em .NET. O que vou encontrar lá que é aplicável a VC ++ e MFC?

Edit: Eu só entrou em dificuldades tentando colocar cadeias de caracteres Unicode para o recurso tabela de cadeia. (Tanto quanto eu posso dizer, Unicode cordas precisam ser inseridos no arquivo .rc com um editor de texto, em L "0x0034" forma. Eu não encontrei um editor de forma de recursos para fazer isso.) Todas as dicas sobre isso? Qualquer outro recurso que eu posso usar no VS2008 usando VC ++ e MFC?

Edit: Alguém em um fórum Microsoft sugeriu que eu abrir o arquivo problemático .rc no bloco de notas e salve-o em Unicode. Infelizmente, este não parece corrigir os diálogos, embora o stringtable parece estar funcionando em japonês.

Foi útil?

Solução

Há muito mais do que apenas traduzir "strings" internacionalizar uma aplicação.

A maioria de sua interface terá de ser actualizada para ter em conta os diferentes comprimentos de texto e orientação linguagem (coisa hebraico, chinês, árabe, ...)

também vai precisar de algumas imagens para ser mudado para caber uma cultura diferente (infelizmente, eu não tenho um exemplo para isso), ou o figurativo é diferente ou as cores não se encaixam as especificações locais.

Estamos usando uma ferramenta como appTranslator para nos ajudar a fazer a localização de cosméticos (UI re-formatação) e usar um tradutor técnico profissional para as cordas.

Outras dicas

Você também pode criar um recurso única dll

Como criar localizada Resource DLLs para Aplicação MFC para mais detalhes.

Você pode internacionalizar seu aplicativo usando as seguintes maneiras.

Depois de convertido o aplicativo para unicode (você já fez) e todas as cordas devem ser carregados a partir da tabela de cadeia.

  1. Para cada idioma que você precisa para mudar a tabela de corda e de compilação

  2. Uma mais maneira é manter um arquivo XML que contém todas as cadeias no formato localizado. Carregar o xml e cordas, dependendo do idioma.

Aqui está um artigo CodeProject meu que descreve método muito "codificação eficiente" para puxar cordas de tabela de cadeia (obrigatório para os textos traduzíveis): http://www.codeproject.com/KB/string/stringtable.aspx

Aqui está uma outra classe que ajuda seu aplicativo escolher o idioma da interface direita. Ele também ajuda a criar um menu de seleção de idioma: http://www.codeproject.com/KB/locale/LanguageMenu.aspx

Por último, mas não menos importante, appTranslator é uma ferramenta que ajuda a traduzir a interface do usuário do seu aplicativo, detectar quais alterações foram feitas em recursos desde a última versão, criar EXE ou recursos DLLs traduzido e muito mais: http://www.apptranslator.com

. (Nota: eu sou o autor de appTranslator)

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