Κατ' αρχήν, την υποστηρίζεις στις φόρμες.
Μετά:
1. Δημιουργείς ένα configuration setting (έστω "UIlanguage") και το διαβάζεις στην αρχή (στην Main). Ρυθμίζεις το UI σου ώς εξής:
try
{
System.Configuration.AppSettingsReader asr
= new System.Configuration.AppSettingsReader();
string UIlang = (string)asr.GetValue("UIlanguage",typeof(string));
System.Threading.Thread.CurrentThread.CurrentCulture
=new System.Globalization.CultureInfo(UIlang,true);
System.Threading.Thread.CurrentThread.CurrentUICulture
= new System.Globalization.CultureInfo(UIlang,true);
}
catch
{
System.Threading.Thread.CurrentThread.CurrentCulture
= new System.Globalization.CultureInfo("",true);
System.Threading.Thread.CurrentThread.CurrentUICulture
= new System.Globalization.CultureInfo("",true);
}
2. Επίσης, χρειάζεσαι ένα ResourceManager, από τον οποίο θα φορτώνεις τα strings που χειρίζεσαι δυναμικά. Τον "παρκάρεις" σε μία public static μεταβλητή της κύριας φόρμας για να τον έχεις πρόχειρο. Δηλαδή:
public static System.Resources.ResourceManager RM;
RM =
new System.Resources.ResourceManager(typeof(frmMain).Namespace
+ ".strings", System.Reflection.Assembly.GetExecutingAssembly()); Τα δυναμικά strings τα φορτώνεις με (παράδειγμα):
string appTitle = frmMain.RM.GetString("appTitle");
Η επιλογή στο μενού σου θα κάνει αντίστοιχα πράγματα με το #1. Τέλος, θα πρέπει να αποθηκεύεις την προτίμηση του χρήστη στο configuration (φόρτωμα του XML Document, SelectSingleNode κ.λπ.).
Άρης
Aris