Eine Anwendung. Fünf Sprachen.
Umgeschaltet, während sie läuft.
sgcLocalization übersetzt Ihre eigenen Delphi-, C++Builder- und Lazarus-Anwendungen. Jedes Formular, jede Meldung, jeden Plural, mit einem Editor und einer Codezeile zum Wechseln der Sprache.
- English
- Deutsch
- Español
- Français
- Italiano
Das Bild oben zeigt eine einzige ausführbare Datei. Dasselbe Dashboard mit denselben Daten, auf Englisch, Deutsch, Spanisch, Französisch und Italienisch, und der Benutzer wechselt die Sprache über eine Combobox, während die Anwendung läuft. Ohne Neustart und ohne zweiten Build.
Diese Anwendung wurde mit sgcLocalization übersetzt, einem neuen Produkt der sgcUI-Suite. Es funktioniert mit VCL, FireMonkey und LCL, von Delphi 7 bis Delphi 13, in C++Builder und in Lazarus, und es ist in jeder sgcUI-Edition und in jedem Einzelprodukt enthalten.
sgcLocalization in einer Minute: eine echte Anwendung scannen, übersetzen und umschalten. Auch auf YouTube.
Die Sprache mit einer Zeile umschalten
Das ist der gesamte Code, den der Sprachwechsel braucht:
uses
sgcLocalization_Engine;
procedure TfrmMain.btnGermanClick(Sender: TObject);
begin
sgcSetLanguage('de');
end;
Wenn Sie lieber ganz ohne Code arbeiten, legen Sie die fertige Sprachauswahl auf das Formular (TsgcVCLLanguageCombo oder TsgcFMXLanguageCombo). Sie listet die Sprachen Ihres Projekts auf und schaltet um, sobald der Benutzer eine auswählt.
Der Wechsel ersetzt mehr als nur Beschriftungen:
- Später erstellte Formulare werden automatisch übersetzt. Ein Dialog, der zehn Minuten nach dem Wechsel geöffnet wird, erscheint in der richtigen Sprache.
- Im Code geänderte Werte bleiben erhalten. Ein Label, das Ihr Code mit einem Kundennamen gefüllt hat, wird nicht durch eine Übersetzung überschrieben.
- Auswahlen bleiben bestehen. Comboboxen und Listen behalten den ausgewählten Eintrag, während ihre Einträge die Sprache wechseln.
- Sprachen mit Schreibrichtung von rechts nach links spiegeln das Layout, sodass ein arabischer oder hebräischer Benutzer ein gespiegeltes Formular erhält.
Damit die Anwendung in der Sprache des Benutzer-Systems startet, setzen Sie eine Eigenschaft:
sgcVCLLocalizer1.Language := 'auto';
Wie wenig Arbeit nötig ist
Der Localizer (TsgcVCLLocalizer für VCL, TsgcFMXLocalizer für FireMonkey) findet jede Texteigenschaft über RTTI. Sie markieren keine Eigenschaften, benennen keine Komponenten um und ändern Ihre Formulare nicht.
Eingebaute Ignorierregeln überspringen, was nie Text ist: Komponentennamen, Feldnamen, SQL, Dateinamen, Formatstrings und die Nicht-Text-Eigenschaften der sgcUI-Steuerelemente selbst. Sie können eigene Regeln hinzufügen. Ein Formular, das Standardsteuerelemente und sgcUI-Steuerelemente mischt, wird sauber gescannt, sodass die Liste, die Sie übersetzen, nur Texte enthält und sonst nichts.
Texte im Code: Snippets
Nicht jeder Text steht in einem Formular. Meldungen, Statuszeilen und im Code erzeugte Beschriftungen sind Snippets. Umschließen Sie den Text mit sgcT, und er wird übersetzbar:
if MessageDlg(sgcT('Save changes?'), mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
SaveOrder;
Dasselbe Wort kann zwei Übersetzungen brauchen. Im Englischen ist "Open" sowohl ein Befehl als auch ein Zustand einer Bestellung. sgcTC fügt einen Kontext hinzu, sodass jede Bedeutung ihre eigene Übersetzung erhält:
btnOpen.Caption := sgcTC('command', 'Open');
lblState.Caption := sgcTC('order status', 'Open');
Plurale verwenden sgcTN. Sie schreiben den Singular und den Plural der Quellsprache, und die Übersetzung liefert so viele Formen, wie die Zielsprache braucht:
lblSelected.Caption := sgcTN('%d order selected', '%d orders selected',
Count, [Count]);
Die Pluralregeln stammen aus CLDR und sind daher für jede Sprache richtig. Polnisch zum Beispiel erhält vier Formen, und der Editor fragt den Übersetzer nach jeder einzelnen.
Ein Übersetzungseditor
Alle Übersetzungen werden an einer Stelle bearbeitet. Klicken Sie zur Entwurfszeit mit der rechten Maustaste auf den Localizer, um den Editor in der IDE zu öffnen, oder verwenden Sie das eigenständige Tool außerhalb der IDE.
- Zustände der Einträge. Jeder Text ist neu, geändert, Vorschlag, übersetzt, geprüft oder veraltet, und Sie filtern nach Zustand.
- Filter und Mehrfachauswahl. Filtern Sie nach Sprache, Formular oder Suchtext, wählen Sie viele Zeilen aus und ändern Sie sie gemeinsam.
- Versionsmarken. Setzen Sie eine Marke für ein Release, und der Filter "neu oder geändert seit" zeigt genau, was das nächste Release übersetzen muss. Nichts wird übersehen.
- Die Sprache Ihres Übersetzers. Den Editor selbst gibt es in 12 Sprachen, mit hellem und dunklem Design.
Validierung, die die üblichen Fehler findet
Eine Übersetzung, die ein %d oder ein Tastenkürzel verliert, ist schnell geschrieben und schwer zu entdecken. sgcLocalization prüft jede Übersetzung, ob sie getippt, importiert oder von der KI vorgeschlagen wurde:
- Formatangaben und Platzhalter,
- Tastenkürzel,
- Zeilenumbrüche, führende und nachgestellte Leerzeichen,
- leere Übersetzungen und Pluralformen.
Ein Eintrag mit einem Fehler kann nicht auf geprüft gesetzt werden, sodass ein fehlerhafter Text nicht als fertige Arbeit in ein Release gelangt.
KI-Übersetzung als Vorschläge
Der Editor kann mit KI-Diensten wie ChatGPT, Claude, Gemini und Ollama übersetzen. Wählen Sie die Zielsprachen, geben Sie ein Glossar und Anweisungen zum Ton vor, und starten Sie.
Die Ergebnisse kommen als Vorschläge. Sie nehmen jeden an oder lehnen ihn ab, und ein Vorschlag überschreibt nie einen Text, der bereits übersetzt ist. Dieselbe Validierung läuft auch für sie.
XLIFF für professionelle Übersetzer
Übersetzungsagenturen arbeiten mit XLIFF. sgcLocalization exportiert XLIFF 1.2 für eine Sprache und importiert die Datei, wenn sie zurückkommt.
Ein Import schreibt nie direkt in Ihr Projekt. Er öffnet eine Prüfliste mit jeder Änderung: dem alten Text, dem neuen Text, der Art der Änderung und gefundenen Problemen. Nur die Zeilen, die Sie ankreuzen, werden übernommen.
Eine Projektdatei
Die Übersetzungen einer Anwendung liegen in einer Projektdatei mit der Endung .sgcloc. Sie ist JSON und damit versionsverwaltungsfreundlich: Eine geänderte Übersetzung ist ein kleiner Diff, den Sie im Code-Review lesen können. Wenn Sie eine einzelne ausführbare Datei ohne etwas daneben bevorzugen, kann das Projekt stattdessen in die Formulardatei eingebettet werden.
In einer echten Anwendung ansehen
Die Showcase-Demo ist Order Desk, eine vollständige Geschäftsanwendung: ein Dashboard, Bestellungen, Kunden, ein Planer, Pivot-Analyse, ein Assistent und eine Druckvorschau. Sie ist ins Englische, Deutsche, Spanische, Französische und Italienische übersetzt und kommt in VCL-, FireMonkey- und Lazarus-Versionen.
Der Demo-Ordner enthält außerdem drei Schnellstarts, das eigenständige Übersetzungseditor-Tool und eine Anleitung zum Einstieg, die Sie von einem leeren Formular zu einer übersetzten Anwendung führt.
In sgcUI enthalten
sgcLocalization wird mit sgcUI 2026.12.0 ausgeliefert. Es wird nicht separat verkauft: Es ist in jeder sgcUI-Edition und in jedem Einzelprodukt enthalten und im Installer standardmäßig ausgewählt.
Ihre Anwendung, in der Sprache Ihrer Kunden
Laden Sie sgcUI herunter, öffnen Sie die Order-Desk-Demo und wechseln Sie die Sprache, während sie läuft. Legen Sie dann einen Localizer auf Ihr eigenes Hauptformular.
Fragen oder Feedback? Nehmen Sie Kontakt auf, Sie erhalten eine Antwort von den Menschen, die den Code geschrieben haben.
