Entwickler-Ecke

Sonstiges (.NET) - Default Sprache bei der .NET Localization


Ralf Jansen - Di 11.12.12 22:56
Titel: Default Sprache bei der .NET Localization
Bei der Net Lokalisierung ist es ja so das die Default Sprache direkt in die entsprechenden Projektassemblies kompiliert wird und die anderen Sprachen in entsprechenden Satellitenassemblies ausgelagert werden. Für mein aktuelles Projekt hätte ich es jetzt gerne das auch die Default Sprache in Satellitenassemblies landet. Für meine Zwecke wäre es auch ok wenn die Default Sprache in die eigentlich Assembly und in einer Satellitenassembly landet. Ich brauche die Satellitenassembly nicht direkt für dieses Projekt sondern würde sie gerne anderweitig weiterverwenden. Gibt es da irgendwo entsprechende Projektoptionen? Hab leider nichts passenden gefunden.


Th69 - Mi 12.12.12 10:27

Hallo Ralf,

meinst du selbsterstellte Ressource-Dateien oder aber die zu WinForms/WPF zugehörigen Ressource-Dateien?
M.E. geht dies nicht (automatisch). Bei ersterem müßtest du wohl von Hand eine eigene "resource.de.resx" anlegen (oder "de-DE", "en", "en-GB" or whatever ;-)) und immer die Original-Datei kopieren.
Bei letzterem müßtest du wohl explizit die "Language" (im PropertyGrid) auswählen (für alle(!) Forms bzw. Windows und UserControls), damit dann auch wirklich eine Satellite-Assembly erzeugt wird. Leider - meine ich mich zu erinnern -, daß nur die Änderungen gegenüber der Default-Language jeweils in den Satellite-Assemblies abgespeichert werden (so daß wohl obiger Ansatz nur eine "leere" Satellite-Assembly erzeugen würde).

Auch die im Internet gefunden Links dazu:
Removing the default language in an assembly and moving it to a satellite assembly [http://stackoverflow.com/questions/3588375/removing-the-default-language-in-an-assembly-and-moving-it-to-a-satellite-assemb]
winforms/c#: Localization, language set to “Default” but i don't see a resourse.dll (satellite assembly)? [http://stackoverflow.com/questions/5244845/winforms-c-localization-language-set-to-default-but-i-dont-see-a-resourse]
bringen leider keine weitere Klarheit...

Sorry, aber vllt. hat ja noch jemand anders einen guten Tipp.


Ralf Jansen - Mi 12.12.12 17:01

OK habe eingesehen das es da scheinbar keinen vernünftigen Weg gibt. Hab mir jetzt ein kleines Tool gebastelt das die Resourcen aus den eigentlichen Assemblies des Projekts extrahiert und erzeuge damit die Satellitenassembly selbst.
Nicht schön funktioniert aber auch.