Domanda

Ho diversi grandi applicazioni MFC qui, e convertirli in qualsiasi altro formato è fuori questione. Ci stiamo espandendo in altri mercati, e vorremmo fare le applicazioni funzionano in altre lingue e culture.

Finora, ho trovato riferimenti occasionali su cosa fare con la versione 6 Visual C ++, con una menzione che le versioni successive di MFC hanno ulteriori caratteristiche rilevanti. Ricerca MSDN mi dà istruzioni su come convertire le applicazioni in Unicode, che abbiamo già fatto. Non ho trovato nulla su MSDN su come rendere lingue multilingual una volta che sono in Unicode, solo poche cose più grandi che utilizzano Google, e un libro sulla internazionalizzazione utilizzando VC ++ 6. (Stiamo utilizzando Visual Studio 2008 ora, su XP e Vista).

Non faccio reclami per la forza del mio Google-fu, e sarei felice di essere diretto a cose che ho perso.

E 'ragionevole utilizzare i metodi di VC ++ 6, o dovrei utilizzare le funzioni successive?

Se devo usare caratteristiche successiva a quella, dove posso trovare qualche riferimento a loro?

C'è qualcosa che dovrei preoccupare di diversa impostazione della localizzazione, la conversione di tutte le stringhe di risorse e duplicazione di risorse in lingue diverse?

posso trovare più cose su di internazionalizzazione .NET, ma io sono inesperto in .NET. Cosa troverò lì che è applicabile a VC ++ e MFC?

Edit: Ho appena incontrato difficoltà cercando di mettere le stringhe Unicode nella risorsa di tabella di stringhe. (Per quanto posso dire, stringhe Unicode devono essere inseriti nel file RC con un editor di testo, a L "0x0034" forma. Non ho trovato un editor di modo di risorse per farlo.) Eventuali suggerimenti su questo? Qualsiasi altra risorsa che posso utilizzare in VS2008 utilizzando VC ++ e MFC?

Edit: qualcuno su un forum di Microsoft ha suggerito che ho aperto il file incriminato RC nel blocco note e salvarlo in Unicode. Purtroppo, questo non sembra per fissare le finestre di dialogo, anche se lo stringtable sembra funzionare in giapponese.

È stato utile?

Soluzione

C'è molto di più di una semplice traduzione "stringhe" di internazionalizzare un'applicazione.

La maggior parte della vostra interfaccia utente avrà bisogno di essere aggiornata per tener conto delle diverse lunghezze di testo, e l'orientamento lingua (cosa ebraico, cinese, arabo, ...)

sarà anche bisogno di alcune immagini di essere cambiato per adattarsi a una cultura diversa (purtroppo, non ho un esempio per questo), sia il figurativo è diverso oppure i colori non si adattano specifiche locali.

Stiamo usando uno strumento come appTranslator per aiutarci a fare la localizzazione cosmetici (UI ri-formattazione) e utilizzare un traduttore tecnico professionale per le stringhe.

Altri suggerimenti

È anche possibile creare una risorsa solo dll

Come creare localizzato della risorsa DLL per applicazione MFC per ulteriori dettagli.

È possibile internazionalizzare la propria applicazione nei seguenti modi.

Dopo aver convertito l'applicazione per unicode (già fatto) e di tutte le stringhe devono essere caricati da tabella di stringhe.

  1. Per ogni lingua è necessario modificare la tabella di stringhe e compilare

  2. Un altro modo è quello di mantenere un file XML che contiene tutte le stringhe nel formato localizzato. Caricare il xml e stringhe a seconda della lingua.

Ecco un articolo CodeProject mio che descrive molto metodo per tirare le stringhe dalla tabella stringa "codifica-efficiente" (necessaria per i testi traducibili): http://www.codeproject.com/KB/string/stringtable.aspx

Ecco un'altra classe che aiutano la vostra applicazione scegliere la lingua dell'interfaccia utente destra. Inoltre, consente di creare un menu di selezione lingua: http://www.codeproject.com/KB/locale/LanguageMenu.aspx

Ultimo ma non meno importante, appTranslator è uno strumento che consente di tradurre l'interfaccia utente della vostra applicazione, individuare quali cambiamenti sono stati fatti in termini di risorse rispetto alla versione precedente, creare EXE o DLL di risorse tradotti e molto altro ancora: http://www.apptranslator.com

. (Nota: io sono l'autore di appTranslator)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top