Entwickler-Ecke

Andere .NET-Sprachen - Mit Delphi.Net Multilanguage Applikation erstellen?


winx - Do 06.04.06 15:44
Titel: Mit Delphi.Net Multilanguage Applikation erstellen?
Hallo,

wenn ich mit Delphi 2006 eine Multilanguage App schreiben will, wie muß ich dann die Texte von Exceptions, Nachrichten, Captions etc am besten verwalten um diese möglichst einfach (am besten in einer datei(xml,ini)) übersetzen zu können?

Gibts da irgendwo Beispiele?

danke,
winx


futti - Di 13.06.06 15:57

Wir haben uch mal eine multilinguale Anwendung geschrieben.
Hierfür wurde eine Excel-Tabelle verwendet.
Es gab verschiedene Text-Konstanten, die aus einer Nummer bestanden.
Diese Nummern standen in der ersten Spalte der Tabelle. In den weiteren Spalten standen die jeweiligen Texte der verschiedenen Sprachen. Je nachdem, welche Sprache eingestellt war wurde die entsprechende Spalte hinter der Text-Nummer ausgelesen.

Wie allerdings der Zugriff auf die Tabelle erfolgte, weiß ich nicht.

Vielleicht hilft dir das trotzdem weiter.

Viele Grüße,
Futti


Bernhard Geyer - Mi 21.06.06 21:50

Wenns eine Win32-Anwendung wird google mal nach GNU Gettext Delphi.


Neidhard von Reuental - Do 22.06.06 06:53

Mit reinem .NET kannst Du keine INI's lesen. Habe mir selber ein Package geschrieben welche die Klasse TINI in .NET zur verfügung stellt.
Lesen und schreiben ist damit simpel.
die INI könnte etwa so aussehen:
[Eng]
1=File
2=Open
3=Save
4=Save as...
5=Close

[Deu]
1=Datei
2=Öffnen
3=Speichern
4=Speichern als...
5=Schließen

Um nun die Anwendungstexte auf die jeweilige Sprache umzuschreiben fügst Du im Load-Event den Programmcode zum lesen und setzen der Texte.Z.B. so:
Lang:='Eng';
INI:=TINIFile.Create('lang.ini');
MenuItem1.Text=INI.ReadString(Lang,'1','');
.
.
.


XChris - Do 22.06.06 15:59

Ini?
Textfile?
Mua!


Es gibt keine INI Dateien bei .net und man verwendet diese auch seit einigen Jahren nicht mehr. Diese Technologie ist vorbei. Auch nen Textfile ist bäh!

.NET hat wunderebare Multi-Kulurelle Unterstützung. Neben der Sprache, ändert sich nehmlich auch Zahlenformat und Kalenderformat und hin und wieder sogar der Kalender! (hebräisch, chinesisch etc.)

Hier ein kleiner Einstieg:
http://www.software-developers-home.de/modules.php?op=modload&name=News&file=article&sid=47&mode=mode=thread&order=0&thold=0

Ansonsten mal in der MSDN blättern.

:-)

Chris


Neidhard von Reuental - Do 22.06.06 17:03

Warum regst Du Dich so auf? Wenn er das gern in einer Text-Datei hätte soll er das doch tun. Zudem haben diese auch den Vorteil schnell und ohne zusätzlich benötigte Programme mal etwas zu ändern oder zu erweitern.
Du meinst INI's werden schon lange nicht mehr verwendet,da bist Du auf dem Holzweg.
Viele Anwendungen benutzen weiterhin INI's.
Microsoft hatte mit Einführung der Registry verkündet das Entwickler die Registry verwenden sollen, statt weiterhin auf INI's zu setzen. Mit der Zeit hat man aber festgestellt das das keine gute Idee war. Die Registry blähte sich enorm auf, war dadurch unübersichtich und sollte die Registry einen defekt haben starteten Windows und Programme nicht mehr. Mit Vista verkündet Microsoft nun das jede Anwendung für sich arbeiten und Einstellungen möglichst auch nur im Anwendungs- Userverzeichnis gespeichert werden sollen, dabei wird auf XML hingewiesen.
XML ist sowas wie ein weiterentwickeltes INI-System.


XChris - Fr 23.06.06 08:30

user profile iconNeidhard von Reuental hat folgendes geschrieben:
Warum regst Du Dich so auf? Wenn er das gern in einer Text-Datei hätte soll er das doch tun. Zudem haben diese auch den Vorteil schnell und ohne zusätzlich benötigte Programme mal etwas zu ändern oder zu erweitern.


Sprachressourcen in einer Textdatei zu verwalten ist ähnlich modern wie eine Keule. Man spart als Entwickler sehr wenig Zeit, beim Erstellen des Textfiles und setzt diese Zeit mehrfach beim Erstellen durch die Entwicklungsumgebung wieder zu. Nochmals Zeit wird man beim Pflegen der Anwendung verschwenden.
.Net unterstützt hervorragend Mehrsprachige Anwendungen. Genau das war die Frage. Wenn man die Technologie nicht einsetzt und lieber alles per Hand codet, dann ist nen Textfile genau das richtiger. Aber schneller und robuster wirds mit den Entsprechenden .net Klassen.

Zitat:

Du meinst INI's werden schon lange nicht mehr verwendet,da bist Du auf dem Holzweg.
Viele Anwendungen benutzen weiterhin INI's.


Auf dem Holzweg sind die, die die Entweicklung wohl verschlafen. Ein DataSet im RAM, darin meine Einstellungen und ich kann diese in ein XML, in eine Datenbank oder serialisiert übers Netz schicken. Wer will da noch Ini's?
Erstellen, benutzen und warten sind doch viel schneller und effektiver.

Zitat:

Microsoft hatte mit Einführung der Registry verkündet das Entwickler die Registry verwenden sollen, statt weiterhin auf INI's zu setzen. Mit der Zeit hat man aber festgestellt das das keine gute Idee war. Die Registry blähte sich enorm auf, war dadurch unübersichtich und sollte die Registry einen defekt haben starteten Windows und Programme nicht mehr. Mit Vista verkündet Microsoft nun das jede Anwendung für sich arbeiten und Einstellungen möglichst auch nur im Anwendungs- Userverzeichnis gespeichert werden sollen, dabei wird auf XML hingewiesen.
XML ist sowas wie ein weiterentwickeltes INI-System.


Ganz genau. Dann liegen wir ja doch nicht mit der Meinung auseinander. Registry hab ich immer gehasst wie die Pest (und doch Ini's benutzt) aber inzwischen ....

Chris


jasocul - Fr 23.06.06 08:40

Wenn es denn XML sein soll und die Handhabung wie bei einer INI-Datei dann schau mal hier nach:
http://www.c-sharp-forum.de/topic_INIDateien+unter+NET_50601.html