2013-03-12 13 views
5

Ho quasi finito la mia applicazione C#; l'unica cosa che resta da fare è implementare il supporto di più lingue.Supporto di più lingue in un'applicazione Winforms

Ho già creato file di risorse che contengono stringhe per alcune lingue per tutto il testo visualizzato sullo schermo.

Esempio del mio file inglese risorse:

Name     | Value      | Comment 
------------------------------------------------------------------------------ 
lblName     | Name:      | Name EN 

Esempio del mio file di risorse olandese:

Name     | Value      | Comment 
------------------------------------------------------------------------------ 
lblName     | Naam:      | Name NL 

Come posso legare il campo Value alla Text proprietà di mia Label (lblName)?

Utilizzo .NET Framework 3.5.

+1

Ciò dipende totalmente dalla struttura della GUI, che non è stata specificata. –

+0

Sto usando Winforms – Max

+2

Guarda questo articolo [Processo di localizzazione utilizzando i file di risorse in .NET] (http://www.codeproject.com/Articles/79397/Localization-process-by-using-resource-files-in -NE) –

risposta

-3

Inserire i valori di lingue diverse in una tabella di database.

Lascia che l'utente selezioni la lingua.

In base alla selezione della lingua recuperare i dati dal database su una lingua particolare.

E quindi collegarlo con il testo dell'etichetta.

+1

-1 - L'OP utilizza file di risorse, non il database. –

+3

Questo non è il modo giusto per farlo credo, i file di risorse o non creati per niente – Max

+0

Questa è in realtà una buona soluzione, ma per la traduzione dei dati recuperati dal database, ad esempio celle di testo da tabelle di ricerca. In questo caso è inutile. +1 per lo sforzo. :) –

-2

Prova questo:

<asp:Label runat="server" Text="<%$ Resources:DutchLanguage, Value %>"></asp:Label> 
+0

Sto usando Windows Forms ed è un'applicazione desktop C#, non una pagina web (ASP). – Max

+0

Hai menzionato l'applicazione C#, ma non l'hai specificato dall'inizio –

+1

Quindi avrei dovuto usare: l'applicazione Web e ho usato il tag ASP e c'è un tag: WinForms. – Max

0

So che questa domanda sono stati chiedere molto tempo fa, ma da allora non ci fu risposta ecco cosa suggerisco:

Per accedere a un file di risorse in C# è possibile utilizzare a ResourceManager. Per prima cosa crea il tuo gestore risorse in base al linguaggio corrente. Hai due opzioni per questo. È possibile utilizzare un interruttore o un'istruzione if (se la lingua è determinata da un menu) o utilizzare la localizzazione per utilizzare la cultura corrente del computer. Infine, con entrambi i modi puoi chiamare il metodo GetString() fornendo la chiave che credo nel tuo caso è lblName.

N.B: Nell'esempio seguente, utilizzo il primo metodo che recupera la lingua da un menu.

string selectedLanguage = comboBoxLang.Text; // Comes from a menu option 
string resourceFile = string.Empty; 

/***/ 
Logic to retrieve the proper resourceFile depending on the selectedLanguage. 
/***/ 

ResourceManager rm = new ResourceManager(resourceFile, Assembly.GetExecutingAssembly()); 

// Set your label text. 
lblName.Text = rm.GetString("lblName"); 
Problemi correlati