![]() |
Programm in mehrere Sprachen?
Ich habe ein Programm geschrieben und möchte die Beschriftungen für mehrere Sprachen zu Verfügung stellen. Ich habe gelesen, dass dies Delphi direkt unterstützt. Habe leider keine genauen Information darüber gefunden, wie genau diese Unterstützung aussieht. Ich würde z.B. alle Wörter in eine Datei speichern und beim laden des Programms die Datei in eine Stringliste laden und dann aus der Stringliste die entsprechenden Caption’s zuweisen.
GnuText habe ich mir auch schon angesehen, ist aber, meiner Meinung nach, zu kopliziert. Wie würdet Ihr das machen? |
Re: Programm in mehrere Sprachen?
Hallo,
Delphi 6 und 7 ab Enterprise und Delphi 2005 ab Professional haben den Translation Manager von Borland mit dabei. Zur Mehrsprachigkeit findet Du mittels der Forumsuche noch ne ganze Menge Thread über das Thema. Bisher habe ich kleinere Projekte mit INI-Dateien übersetzt, wo die Sektion dem Form-Namen entsprach und die Werte den Captions der Controls auf der Form. Die Hints werden auf die selbe Weise geladen, nur die Strings, die erst zur Laufzeit zusammengebaut werden, muss ich "manuell" laden. mfG mirage228 |
Re: Programm in mehrere Sprachen?
Mach dich doch mal ein bißchen schlauer über Ressourcen-Dateien.
|
Re: Programm in mehrere Sprachen?
Zitat:
|
Re: Programm in mehrere Sprachen?
Zitat:
![]() - Keine Verstrickung Entwicklung <-> Übersetzungsprozess - Kunde könnte fast selbständig 100% eigene übersetzung einbauen - Unicode-Supoort. |
Re: Programm in mehrere Sprachen?
Ich pflege seit einigen Jahren ein Delphi 5-Projekt, bei dem der Anwender zur Laufzeit beliebig zwischen mehreren Sprachen umschalten kann.
Alle Texte im Programm sind in Variablen mit selbsterklärenden (englischen) Bezeichnungen untergebracht. Eine Umschaltprozedur weist diesen Variablen die Werte zu. Die Übersetzungen selbst sind in je einer Unit pro Sprache untergebracht, da der Kunde nicht von sich aus neue Sprachen hinzufügen können muß (und soll). Wenn der Kunde eine zusätzliche Sprache aufnehmen will, dann erhält er eine Kopie der Text-Unit, damit sein Übersetzer die Texte auf der rechten Seite der Zuweisungen eintragen kann. Ich binde dann die Unit ein und füge den Menüpunkt im Sprachmenü hinzu. Da hat bis jetzt gut geklappt - hoffe ich zumindest, den außer in Deutsch, Englisch, und notfalls Französisch, Italienisch und Spanisch muß ich mich schon darauf verlassen, dass der Übersetzer des Kunden keinen Mist gebaut hat. Meine Kenntnisse z.B. von Türkisch, Polnisch und Tagalog reichen garantiert nicht so weit, dass ich in diesen Sprachen die Beschriftungen meies Programms lesen könnte ;). :coder: |
Re: Programm in mehrere Sprachen?
Zitat:
Delphi-Quellcode:
In jedem Formular rufst Du im OnCreate Event die Übersetzung auf:
begin
textdomain('myapp'); AddDomainForResourceString('myapp'); Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; end.
Delphi-Quellcode:
Einzelne Strings kannst mit der Funktion _() übersetzen, wie z.b. hier:
procedure TMainForm.FormCreate(Sender: TObject);
begin TranslateComponent(self); end;
Delphi-Quellcode:
Gruß,
Label1.Caption := _('This is the translated string.');
Marcel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz