vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei 
Autor: argoped
Datum: 13.04.11 22:19

Erst mal vielen Dank für die schnelle Antwort,
leider kann ich Dir nicht ganz folgen. Mir war an sich klar, dass die Ressources.resx plus Designerdatei von der IDE verwaltet wird. Allerdings ist mir nicht klar wie hier verschiedene Sprachen verwaltet werden können ohne eine neue lokalisierte Resource.xx.resx zu erzeugen oder in meinem Code abhängig von der Culture die richtigen Resourcen aus der EINEN Resourcendatei herauszusuchen. Die übliche Vorgehensweise in .Net ist eine Resource.xx.resx für jede Sprache xx bereitzustellen, die beim build alle in eine dll kompiliert werden. Ich verwende die Express Edition von VB daher kann ich nicht dem Project eine neue Resourcendatei xx hinzufügen. Deshalb mache ich die ganzen Klimmzüge mit kopieren der Resource.resx nach Resource.xx.resx und editieren der Projektdadei. Die zugehörige Resource.xx.Designer.vb (wenn auch völlig leer) ist allerdings nicht notwendig, wie ich nun rausgefunden habe. Man muss dann jedoch in der Projektdatei den Tag <LastGenOutput> weglassen sowie den ganzen <Compile> Teil zur Resource.xx.Designer.vb. Im Projektmappenexplorer erscheint (alle Dateien anzeigen) dann die neue Resources.xx.resx unter My Project. Nun kann ich in der IDE die resx doppeltklicken und alle Strings einfach in der Tabelle übersetzen oder andere Bilder, natürlich mit dem gleichen Namen, einbauen.
Beim build wird dann neben der MyApp.EXE für jede Sprache ein Verzeichnis xx erzeugt, mit einer MyApp.dll darin, aus der die lokalisierten Strings (oder sonst welche Resourcen) geholt werden. So kann ich in meinem Code z.B. MsgBox (My.Resources.sInfo) oder Me.Icon = My.Resources.icoMyApp schreiben und das Programm bekommt je nach Culture den lokalisierten String bzw. das gewünschte Icon. Ich muss nirgends in meinem Code irgedwie auf die Culture eingehen, was ich wohl machen müsste, wenn ich einen ResourceManager schreiben soll oder habe ich Dich da missverstanden?
Dass ich verschiedene Ressourcendateien für verschiedene Klassen haben möchte liegt einfach daran, dass dadurch die Übersichtlichkeit erhöht wird. Zudam kann ich einzelne Ressourcendateien von verschiedenen Leuten übersetzen lassen. Ausserdem heabe ich eine Reihe von Klassen die die gleiche Schnittstelle unterstützen. Diese haben auch ganz ähnliche Nachrichtenstrings. Würde ich alle diese Strings in eine Ressourcendatei packen müsste ich in einer Klasse A sowas wie
Msgbox My.Resources.clsANachricht1 und in der anderen
Msgbox My.Resources.clsBNachricht1 schreiben.
Habe ich jedoch mehrere Ressourcendateien mit eigenem Namespace so sieht das so aus:
Msgbox My.AResources.Nachricht1 und
Msgbox My.BResources.Nachricht1
Da ich viel mit kopiertem Code arbeite, den ich dann anpasse kann ich in solchen Fällen mit
With My.XResources
Msgbox .Nachricht1
End With
viel Schreibarbeit sparen.

Die Klassenbibliothek brauche ich bei dieser Solution, da ich in meiner Mappe mehrere Windows Forms Applications (sprich mehrere EXE) Projekte habe, die alle die gleichen Klassen und Steuerelemente verwenden sollen.

Das mit dem kopieren der Klassen aus einer Klassenbibliothek in ein anderes Projekt, ist vielleicht etwas etwas konstruiert obwohl ich mir schon vorstellen kann, die eine oder andere Klasse gerne in einem neuen Programm verwenden zu wollen ohne gleich die ganze Klassenbibliothek, die ja für ein ganz anderes Programm bestimmt war mitliefern zu müssen. Vielleich möchte ich diese Klassen ja auch verändern um sie an das neue Programm anzupassen. Dann wäre es schon angenehm ich könnte die Class.vb in der IDE ins neue Projekt rüberziehen und die ganzen Resourcendateien würden auf einen Schlag von der IDE mitkopiert. Das geht mit lokalisierten Forms ja auch. Und die haben ja für jede Sprache eine resx mit den Namen form1.xx.resx und sind auch an die form1.vb gebunden.

ich hoffe mein Anliegen sowie mein Vorgehen ist nun etwas klarer geworden.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Lokalisierung einer Klasse mit Bindung an die vb Datei2.671argoped13.04.11 14:08
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.071ModeratorFZelle13.04.11 15:13
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.058argoped13.04.11 22:19
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.042ModeratorFZelle14.04.11 00:34
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.023argoped14.04.11 11:42
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.380argoped15.04.11 13:48
Re: Lokalisierung einer Klasse mit Bindung an die vb Datei2.197ModeratorFZelle15.04.11 22:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel