Domanda

Quindi ho un programma che deve essere multilingue. L'unica differenza tra ciò di cui ho bisogno e ciò che ho trovato sul Web è che tutti i computer su cui verrà eseguito il mio programma sono impostati sulla localizzazione di EN.

Abbiamo impiegati di lingua spagnola che useranno il programma proprio come i dipendenti di lingua inglese. Quindi non sarò in grado di impostare qualcosa in base alla localizzazione del computer, tutto dovrà essere fatto in codice.

Stavo pensando di provare a creare un file XML (in realtà solo un set di dati) per ogni modulo che ho e avere ogni tabella di dati in una lingua selezionabile. In ogni tabella, avrebbe le informazioni (controllo nome, proprietà e testo) per impostare le etichette / caselle di controllo / ecc. Necessarie. Dovrò creare un nuovo controllo modulo in modo che io possa avere una funzione generica per passare e rinominare tutti questi controlli se possibile.

<DataSet>
   <English>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hello</Text>
   </English>
   <English>
     <ControlName>labelBye</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Bye</Text>
   </English>
   <Spanish>
     <ControlName>labelHello</ControlName>
     <ControlProperty>Text</ControlProperty>
     <Text>Hola</Text>
   </Spanish>
</DataSet>

Inoltre non sapevo molto delle stringhe nel file delle risorse per ciascun modulo. Potrei farlo da lì e utilizzare le funzioni .Net per raggiungere questo obiettivo?

Quindi sono pronto per un sacco di suggerimenti perché non voglio davvero tornare al programma che ho appena scritto e inserito, odio tornare indietro e aggiungere più funzionalità una volta che ho già passato così tanto tempo con questa ventosa ...

Grazie

È stato utile?

Soluzione

È possibile impostare la cultura desiderata nel codice, ad esempio:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");

Vedi questo articolo MSDN per ulteriori informazioni informazioni.

Altri suggerimenti

È un dolore, ma non è difficile. All'interno del designer WinForm di VS2008, seleziona il modulo, visualizza le sue proprietà e imposta Localizable = True (se visualizzi la classe / codice parziale dietro il file vedrai una nuova riga che assomiglia a

  resources.ApplyResources(this, "$this")

Quindi, per ogni locale che si desidera supportare, selezionare Lingua e localizzare tutte le modifiche necessarie sul Locale predefinito.

Credo che Windows consenta all'utente di specificare una locale diversa per un'applicazione specificata. L'ho provato l'ultima volta con Windows 2000.

Con Windows puoi avere una cultura della macchina EN, ma per il browser, i singoli utenti del PC possono selezionare le culture preferite (IE e Firefox comunque). Tutto il resto su PC è inglese In Internet Explorer, vai su Strumenti, Opzioni, fai clic sul pulsante della lingua nella scheda generale. Puoi specificare una gerarchia di lingue preferita.

Altrimenti vai con la risposta di Joes.

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