Autor Beitrag
winx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Do 06.04.06 15:44 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44

WIN 2000
D3 Prof, Delphi 2005 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Mi 21.06.06 21:50 
Wenns eine Win32-Anwendung wird google mal nach GNU Gettext Delphi.
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: 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
Hält's aus hier
Beiträge: 11



BeitragVerfasst: 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:
www.software-develop...;order=0&thold=0

Ansonsten mal in der MSDN blättern.

:-)

Chris
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: 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
Hält's aus hier
Beiträge: 11



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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:
www.c-sharp-forum.de...unter+NET_50601.html