Domanda

L'applicazione che sto scrivendo è quasi completa e mi piacerebbe che venisse utilizzata da persone che parlano lingue diverse.

Non so da dove cominciare, qual è la differenza tra globalizzazione e cultura per quanto riguarda la programmazione?

Come si possono prendere frasi insolite come "questa applicazione è stata creata per fare questo e quello" invece di File, Apri, Salva ecc... e trasformarle, ad esempio, in spagnolo?

Grazie molto :-)

È stato utile?

Soluzione

Microsoft ha già un ottimo tutorial

Altri suggerimenti

Ci sono diverse cose da fare per avere un'applicazione "globalizzata".

1) Traduci ogni etichetta nei moduli e nei controlli nella tua applicazione

È necessario impostare la proprietà "Localizable" su true su ogni modulo e controllo.Questa proprietà consente la creazione di file di risorse in ogni lingua e regione.Ora, con la proprietà "Lingua", puoi selezionare quale lingua vuoi supportare.Quando selezioni una lingua nell'elenco della casella combinata, il tuo modulo (o controllo) passerà automaticamente a questa lingua.Ora è tuo compito tradurre ogni parola nel controllo.Non appena si apporta una modifica, Visual Studio creerà un file di risorse per la lingua specifica.(Ad esempio, MyForm.fr-FR.resx per il francese-Francia).

2) Importa ogni stringa hardcoded nel tuo codice in un file resx

Crea un file di risorse (personalmente utilizzo StringTable.resx) e aggiungi ogni stringa da tradurre in questo file.Successivamente, crea un file di risorse per ogni lingua che desideri supportare e traduci le stringhe in ciascun file.Ad esempio, se vuoi supportare il francese, crea StringTable.fr.resx o StringTable.fr-FR.resx per francese-Francia.Con Gestore risorse class, puoi caricare ogni stringa.

Nota: Se utilizzi Visual Studio 2005 o 2008, hai già un file di risorse creato per impostazione predefinita.

3) È necessario elaborare i moduli e i controlli con saggezza

Linee guida di Microsoft: Linee guida Microsoft

4) Gestire date e numeri

Se la tua applicazione crea file di dati che possono essere inviati ad altri utenti in un'altra regione, devi pensarci quando salvi i tuoi dati nel file.Quindi, memorizza sempre il tuo datetime in UTC ed esegui la conversione in locale solo quando carichi le informazioni.La stessa cosa vale per i numeri decimali soprattutto se memorizzati nel testo.


Quando compilerai la tua applicazione, Visual Studion creerà un file satellite simile MyApplication.fr.dll in una sottocartella fr.Per caricare questa DLL, devi cambiare la lingua del thread corrente all'avvio della tua applicazione.

Qui il codice:

CultureInfo ci = new CultureInfo("fr");
Thread.CurrentThread.CurrentUICulture = ci;

Tutte le tue domande troveranno risposta nel libro qui sotto.I capitoli iniziali spiegano tutti i concetti principali, la terminologia e le abbreviazioni fantasiose come i18n.Non ho avuto il tempo di leggerlo fino alla fine..ma buono fino al punto in cui ho letto.Consigliato se sei seriamente intenzionato a farlo nel modo giusto e hai tempo :)

http://www.amazon.com/NET-Internationalization-Developers-Applications-Development/dp/0321341384 Image

Per un sistema molto semplice, crea un'interfaccia che definisca metodi come GetSaveText(), ecc.e consentire il collegamento di assembly come questo alla tua applicazione.

Questa dovrebbe essere una soluzione abbastanza buona per un numero compreso tra 10 e 1000 stringhe:

Avere un file di risorse per ogni locale.Non conosco .NET ma sono sicuro che esista un modo comune per farlo.Quindi, nel codice di recupero delle risorse, carica quello appropriato in base alle impostazioni internazionali del browser dell'utente.Chiedi a questo codice di recuperarti la stringa corretta per una chiave.

Contenuto del file di esempio, se dovessi implementarlo da zero:

risorse.it:

save=Save
close=Close
ok=OK
areYouSure=Are you sure?

risorse.es:

save=I don't know how to say anything in Spanish, oops
close=...
ok=...
areYouSure=...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top