AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Übersetzung + Mehrsprachigkeit: Wie macht man das ?
Thema durchsuchen
Ansicht
Themen-Optionen

Übersetzung + Mehrsprachigkeit: Wie macht man das ?

Ein Thema von hacki · begonnen am 8. Mai 2003 · letzter Beitrag vom 24. Mai 2003
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#11
  Alt 9. Mai 2003, 17:18
Ich denke das Laden ist dabie wohl der größte Aufwand. Ich meine, wenn jemand ein Programm mit 30 Buttons, 55 Labels, einen Lizenztext und und und hat, is das ne sch*** Arbeit.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12
  Alt 9. Mai 2003, 17:21
Nicht unbedingt.

Unter nonVCL kann ich ID's vergeben, wenn die Controlls die gleiche ID haben wie die korrespondierende ID von dem String aus dem Stringtable, kann ich alles in einem Rutsch mit einer for-Schleife beschriften. Mit der VCL könnte man das mit der Tag-Property lösen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#13
  Alt 9. Mai 2003, 17:50
Ja Luckie, mach mich fertig. Ich bin grademal auf Seite 120 von
"Delphi Grundlagen und Profiwissen". Da muss ich sowas doch noch nich wissen, oder.
Man liest sich, Stanlay
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#14
  Alt 9. Mai 2003, 18:29
Ich möchte mal zu bedenken geben, daß es nicht reicht, ein paar eigene Strings zu übersetzen, sondern auch alle von Delphi miteingebrachten Resourcestrings (z.B. Laufzeit Meldungen) müssen schließlich auch übersetzt werden (Überleg mal du sitzt vor einem Programm mit deuteschem Interface und plötzlich poppt da ne russische Meldung hoch, nur so als frei gewähltes Beispiel).

Außerdem müssen da noch Dinge im Interface angepaßt werden, weil die verschiedenenen Sprachen unterschiedlich viel Platz brauchen.

ich hab mit der Translation Engine von Delphi noch nicht wirklich ein ganzes Projekt durchgezogen, aber auf den ersten Blick scheint sie doch ein extrem hilfreicher Ansatz zu sein, da sie versucht, selbst alle zu übersetzenden (oder sonstwie zu modifiezierenden ) Resourcen übersichtlich aufzulisten und automatisch zu warten.

Vor irgendwelchen vollautomatischen Übersetzungen würde ich warnen, nicht nur wegen der Qualität, sondern woher soll die arme Maschine wissen, was sie nicht übersetzen darf, und man denke an die Anmerkung in den Quelltexten 'do not localize', plötzlich wird z. B. der name der zu ladenden DLL übersetzt, ich hatte sowas schon mal bei einem Wizzard in Delphi im Com+ Bereich ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15
  Alt 9. Mai 2003, 18:33
Wenn du die Messagebox nimmst, haben die Buttons automatsich die Windows-Sprache. Bei den Boxen aus der Unit Dialogs nicht. RaiseLastOSError sowieso Windows-Sprache.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#16
  Alt 9. Mai 2003, 18:39
hi,

ich bin nun einwenig verwirrt. So tief stecke ich in der Programmierung wohl nicht drin. Mit dem dynamischen Laden der Stringressourcen finde ich eigentlich interessant.
Zitat:
Man kann auch mit einer Ressource arbeiten und verschieden sprachigen Stringtabels. dannkümmert sich Windows automatisch drum welche Sprache paßt. Vorgemacht habe ich das bei meinem FileSplitter. Der kann deutsch und englisch. Wobei englisch standard ist. Ist Windows nicht deutsch wird englisch genommen.
Das Menü und die Meldungstexte kann ich ja allesamt als Stringressourcen in eine separate Unit packen. Wie aber lade ich dynamisch und Sprachenabhängig ? Hast Du vielleicht ein Beispiel ?

Code:
unit ResStrngs;

interface

resourcestring

SsaveFile = 'Datei sichern';

implementation

end.
Muß ich den Text nun zweimal mit verschiedenen Namen definieren b.s.

Code:
SsaveFileDE = 'Datei sichern';
SsaveFileEN = 'Save File';
Und wie spreche ich sie im Programm dann dynamisch an ? Oder kann ich per spezieller Anweisungen Code-Blöcke mit gleicher StringResourcen-Namen aktivieren ?



vielleicht kann mir jemand konkretes sagen ? Und wie mache ich es mit Texten auf den Formen ?

grüsse hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17
  Alt 9. Mai 2003, 18:53
Nein du brauchst eine richtige Ressourcen-Datei.

Wie man die von hand erstellt kann ich dir leider nicht sagen, ichmache es immer mit dem Ressourcen-Editor vom VC.

Du lädst den String nur über die ID, die Sprache wählt Windows aus.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#18
  Alt 9. Mai 2003, 19:22
Ich sprach ja auch von Delphi Runtime Meldungen:

also deutsches Delphi, englisches Windows, diese Meldungen und viele, viele mehr, kämen alle auf deutsch, zumindest teilt die ITE hier meine Meinung:

SUnknown = '<unbekannt>';
SInvalidInteger = '''%s'' ist kein gültiger Integerwert';
SInvalidFloat = '''%s'' ist kein gültiger Gleitkommawert';
SInvalidCurrency = '''%s'' ist kein gültiger Währungwert';
SInvalidDate = '''%s'' ist kein gültiges Datum';
SInvalidTime = '''%s'' ist keine gültige Uhrzeit';
SInvalidDateTime = '''%s'' ist kein gültiger Datums- und Zeitwert';
SInvalidDateTimeFloat = '''%g'' kein gültiger Datums- und Zeitwet';
SInvalidTimeStamp = '''%d.%d'' ist kein gültiger Zeitstempel';
SInvalidGUID = '''%s'' kein gültiger Wert für GUID';
SInvalidBoolean = '''%s'' ist kein gültiger boolescher Wert';
etc
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#19
  Alt 9. Mai 2003, 19:26
Das mit dem autmoatischen Beispiel war eigentlich auch nicht als wirklich Idee gedacht. Zumal man ja ständig Online sein müsste....
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von City Light
City Light

Registriert seit: 17. Sep 2002
314 Beiträge
 
#20
  Alt 9. Mai 2003, 19:49
Ich habe hier was für dich, das müßte dir bestimmt weiter helfen

da is es
Bis bald man liest sich
Tino
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz