Ja, theoretisch könnten Sie lokalisierte Strings aus Windows internen Systemdateien extrahieren. Aber tu es nicht. Die Vorteile werden von den möglichen Nachteilen bei weitem übertroffen. Ihre Anwendung sollte nicht auf undokumentierte Implementierungsdetails angewiesen sein. Es gibt keinen Grund, dies von Windows zu versuchen.
Es ist auch erwähnenswert, dass Sie Tasten (und jede andere Steuerung) umbenennen können. Das bedeutet, dass es zu einfach ist, etwas zu brechen, wenn Sie sich auf einen String-Matching-Algorithmus verlassen. Es gibt keine Möglichkeit, eine Schaltfläche als einen bestimmten "Typ" zu kennzeichnen, so dass sie automatisch einer bestimmten Beschriftung zugeordnet wird. Selbst wenn Sie könnten, würde dies nicht jede Schaltfläche abdecken, die in einer nicht trivialen Benutzeroberfläche vorhanden ist. Auch, wie Joey's Antwort darauf hinweist, gibt es für den Benutzer nichts Schlimmeres als eine lokalisierte UI teilweise. Konsistenz ist der Schlüssel, und Sie können auf diese Weise keine Labels, Gruppenrahmen, Menüs, Tooltips usw. lokalisieren.
Beachten Sie jedoch, dass Windows automatisch die Beschriftungen für Schaltflächen in einem Meldungsfeld (MessageBox
) lokalisiert. Du musst keinen Finger rühren.
Was mit der Einstellung des Localizable
Eigenschaft des Formulars auf True falsch ist (Sie müssen diese zur Design-Zeit zu tun) und die Bereitstellung lokalisierter Textes für all der Kontrollen in Ihrer Anwendung? Windows Forms bietet eine ziemlich umfassende Unterstützung für die Lokalisierung. Der Designer wird alle lokalisierbaren Elemente automatisch in die RESX-Datei des Formulars serialisieren. Siehe MSDN: Walkthrough: Localizing Windows Forms. Stellen Sie sicher, dass Sie genügend Platz für die verschiedenen Längen von Ausdrücken in verschiedenen Sprachen lassen.
Datei + Öffnen + Datei, wählen Sie c: \ windows \ system32 \ user32.dll. LoadString() API. Verwenden Sie das nicht, MSFT hat versprochen, es eines Tages zu brechen. –
Wert Verknüpfung mit der Microsoft Terminonlogy DB @ http://www.microsoft.com/Language/en-US/Terminology.aspx –