Globale Lokalisierungsdatei für alle Formen ?

GartenUmgraben

Erfahrenes Mitglied
Moin

Wenn ich mit Visual Studio 2005 eine Form lokalisiere, legt das Porgramm für die Form die entsprechenden .resx Dateien selbstständig an. Wenn ich nun jedoch zig Formen habe, habe ich dementsprechend viele .resx Dateien. Nun will ich es dem Übersetzer nicht unnötig schwer machen und auch aus anderen Gründen wäre es für mich sinnvoll alle .resx zusammen zupacken (natürlich noch nach Sprachen getrennt).

Weiß jmd ob das geht, bzw. wie ich VS beibringe es automatisch zu machen.

(Mir ist klar, dass ich die .resx später händisch zusammenfügen könnte, nur würde mich interesseiren ob das VS irgendiwe automatisch handeln kann ?)


Wenn nicht, kennt jmd ne andre Möglichkeit der Lokalisierung mittels einer großen Übersetzerdatei pro Sprache für alles ?

Gruß
 
Glaube kaum dass das VS sowas kann...
Aber das ist gar net so schwer zu realisieren. Es gibt ja den ResxResourceReader
und den ResxResourceWriter, damit kannst Dir sehr easy deinen eigenen Übersetzer bauen. ;)
Hier hast mal einen ScreenShot eines kleinen Übersetzers von mir,
damit Dir ein Bild von machen kannst was ich mein.
 

Anhänge

  • ResourceTranslator.JPG
    ResourceTranslator.JPG
    26,1 KB · Aufrufe: 42
Nachtrag:
Es gibt einige fertige Solutions zum Thema. Die kosten aber richtig Kohle. :eek:
Da ich davon abgesehen hab, kann ich Dir leider keine Infos zu posten. :(
Vielleicht hat ja jemand in der Zwischenzeit was günstiges entwickelt
und eine User hier verwendet es schon und könnt sich mal bitte melden... :)
 
Das ist ja mal ned schlecht das Teil. Ich danke Dir. :)
allerdings muss ich mir dafür das 1.1er Framework installieren was ich nicht will bzw. mein Übersetzer nicht will :/
Logisch, genau so wie sich niemand eine JavaVM installiert, damit best. Sachen im Internet funktionieren. :rolleyes:
Sag ihm der soll mal ein Windows SP2 Update machen und nicht so verborhrt sein
und mit der Zeit gehen. Es gibt immer mehr komerzielle Frameworkanwendungen,
die guten Absatz finden. Und in der nächsten WindowsVersion ist es sowieso fest integriert.
Ich frage mich was bei den Leuten immer diese Paranoia verursacht... :D
 
Hab da mal eine weitere Frage zum Thema. Wenn ich in VS Studio ne From erstelle und die mit verschiedenen Controls vollklatsche, erstellt mit VS im Hintergund den passenden Code dafür. Soweit so gut! Kann ich VS irgendiwe beibringen, dass es bei jeder Form und jedem Control-Element den "Text" (sollte es für das Element einen Text geben) auf einen bestimmten wert setzt

Also z.B.

Button1.text = MEIN WERT
Label1.text = MEIN WERT



ohne, dass ich den Wert jedesmal neu eingeben muss ?


"MEIN WERT" wäre dann z.B ein Funktionsaufruf alà getText(this.name.toString());
 
Nein, es ist nicht möglich. akaik
Schau Dir die Steuerlemente doch mal im Reflector an.
Das System.ComponentModel.DefaultValueAttribute ist dafür verantwortlich,
mit welchem Standardwert die Propertys der Componenten initialisiert werden.

Warum möchtest das überhaupt so haben?
 
Nunja, ich möchte wie gesagt die globalen Übersetzungsdateien.

Ich würde es jetzt so lösen:

Jedes Element bekommt einen eindeutigen namen alà Form1_Button1

In meinen resx Dateien steht dann genau der Name dort mit einem entsprechenden Wert. Dieser Wert soll dann als Text für das Element gelten, wobei ich die Sprache global noch setze. Beim erstellen der Form wird dann der Text des Elements aus der resx geholt

Am Beispiel des Button:

Form1_Button1.Name = "Form1_Button1";
Form1_Button1.Text = getText(Form1_Button1.Name);


Die Funktion getText würde dann aus der resx Datei den entsprechenden Wert holen und fertig.

Da ich jedoch nich bei jedem neuen Element händisch den Funktionsaufruf hinschreiben will, dachte ich ich könnt ihn als eine Art Default Wert setzen.
 
Wäh, immer diese resx-Files. Ist doch schmutzig. Für jede Sprache ein XML-File mit den entsprechenden Daten drinnen und fertig ists. Hat sogar den Vorteil, dass die Solution nicht neu kompiliert werden muss, nur weil es eine Änderung an der Übersetzung gegeben hat.

Bei Interesse kannst du dir ja die LIB ansehen auf die ich in meiner Signatur verweise. Da ist ein Translator inkl. Beispiel enthalten. Sollte dir weiterhelfen.
 
Zurück