Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich möchte eine Anwendung, die mehrsprachig ist, erstellen.
wie gehe ich da am Besten vor
Ich habe Zugriff auf eine Eigenschaft in einem Key in der Registry... am Start des Programms möche ich prüfen, welche Sprache gerade eingestellt ist, und je nachdem mein ganzen Controls benennen
was mache ich da?
Muss ich für jedes Control eine Funktion aufrufen, die dann den Text abhängig von dem KeyFlag setzt
Oder geht das irgendwie einfacher?
Jedes Control hat die Properties Localiable und Language. Ist Localiable auf True, wird für jede unter Language gewählte Sprache ein Satellitenassembly erzeugt, die die Spracheabhängigen unterschiede zum "Original" enthält.
Nachdem du aus der Registry die Informationen der Sprache abgefragt hast, kannst du die CultureInfo neu setzen. Das ganze muss jedoch geschehen, bevor die MEthode InitializeComponent einer Form aufgerufen wird.
Wird die CultureInfo danach geändert, kannst du mit dem ComponentResourceManager die Properties neu setzen.
Für weitere Informationen musst du nur mal in der MSDN oder auch einfach nur hier im Forum suchen, gibt schon einige Threads zu dem Thema
Du stellst noch bevor Du deine Steuerelemente initialisierst
die Thread.CurrentThread.CurrentCulture (Ist zB für die String-Formatierung entsprechend der eingestellten Sprache zuständig)
und die Thread.CurrentThread.CurrentUICulture (Legt fest welche Sprache der ResourceManager standardmäßig verwenden soll)
auf die eingestellte Sprache ein. (zB. new CultureInfo( "en-US" ))
Danach werden alle Resourcen in der entsprechenden Sprache geladen.
Wenn Du die Sprache In nachhinein verändern willst, kannst eine Rekursion verwenden und setzt alle nötigen Propertys (idR. Control.Text).
Kann heute Abend mal eine Demo machen. Bastle gerade an einem ResourcesManager herum, der die möglichen Sprachen aus den Resourcen bestimmt um generell bequemer damit arbeiten zu können.
Btw. [thread=258561]Lokalisierung .resx oder .resources - Komplexe Grundsatzfrage zur Lokalisierung - Thread[/thread]
Nach dem Start des Programmes möchte ich die Sprache eh nicht ändern,
d.h. ich muss einfach bevor ich alle Elemente initialisiere Key überprüfen -> CultureInfo setzen -> passt
Naja, mal schaun ob das echt so easy ist
Jetzt wo ihr es sagt, fällt mir ein, stimmt, über CultureInfo und so habe ich shcon bereits gelesen... aber ist mir absolut nicht eingefallen >.<