Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
it:programmiersprache:python:qt:translation:start [23.08.2025 08:36] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | it:programmiersprache:python:qt:translation:start [23.08.2025 08:36] (aktuell) – ↷ Seite von it:python:qt:translation:start nach it:programmiersprache:python:qt:translation:start verschoben marsch | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Qt - Translation ====== | ||
+ | |||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Erforderliche Tools auf dem Rechner | ||
+ | |||
+ | <tabbox Ubuntu PySide2> | ||
+ | |||
+ | <code shell> | ||
+ | sudo apt install pyside2-tools | ||
+ | </ | ||
+ | |||
+ | <tabbox Ubuntu PySide6> | ||
+ | |||
+ | <code shell> | ||
+ | sudo apt install pyside6-tools pyqt6-dev-tools qt6-l10n-tools assistant-qt6 | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <wrap em> | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Info: | ||
+ | |||
+ | Beim starten von '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | Bei dem Werkzeug '' | ||
+ | |||
+ | Ein erneuter Start von '' | ||
+ | |||
+ | Nachdem ich '' | ||
+ | |||
+ | < | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | **Tip** | ||
+ | |||
+ | Bei der Suche nach Paketen, die bestimmte Dateien auf das System installieren könnte das Werkzeug Synaptic-Paketverwaltung (Paket '' | ||
+ | |||
+ | Oder die Web-Site: [[https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== lupdate ===== | ||
+ | |||
+ | ==== Voraussetzungen ==== | ||
+ | |||
+ | Eine Übersetzung wird in der Anwendung mit | ||
+ | <code python> | ||
+ | self.tr(" | ||
+ | </ | ||
+ | durchgeführt. | ||
+ | |||
+ | Das Programm '' | ||
+ | <code python> | ||
+ | self.setWindowTitle(" | ||
+ | </ | ||
+ | ein Fenstertitel gesetzt werden soll, dann wird dieser Eintrag nicht gefunden, da für den String " | ||
+ | <code python> | ||
+ | self.setWindowTitle(self.tr(" | ||
+ | </ | ||
+ | Auf diese Weise werden Strings für die Übersetzung von anderen Strings unterschieden, | ||
+ | |||
+ | <WRAP important round center 60%> | ||
+ | **Achtung!** | ||
+ | |||
+ | Wenn der Inhalt einer String-Variablen übersetzt werden soll, schlägt der Mechanismus fehl. | ||
+ | <code python> | ||
+ | string_variable = " | ||
+ | |||
+ | self.setWindowTitle(self.tr(string_variable)) | ||
+ | </ | ||
+ | wird nicht als zu übersetzender String erkannt und landet damit auch nicht in der '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Projekt-Datei erstellen ==== | ||
+ | |||
+ | Man kann zwar sehr lange Kommandozeilen zusammen stellen, aber so eine Projekt-Datei ist einfacher zu handhaben. | ||
+ | |||
+ | <file text project.pro> | ||
+ | CODECFORTR = UTF-8 | ||
+ | |||
+ | SOURCES = src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | src/ | ||
+ | |||
+ | TRANSLATIONS = lang/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Update durchführen ==== | ||
+ | |||
+ | Das eigentliche Update (oder deren Erstellung) wird durch die Kommandozeile | ||
+ | <code shell> | ||
+ | pyside2-lupdate -verbose project.pro | ||
+ | </ | ||
+ | durchgeführt. | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Qt Linguist ===== | ||
+ | |||
+ | Die eigentliche Übersetzung wird durch [[https:// | ||
+ | |||
+ | Bei mir aktuell ist leider nur '' | ||
+ | <code shell> | ||
+ | cd Projekte/ | ||
+ | |||
+ | pyside6-linguist lang/ | ||
+ | </ | ||
+ | |||
+ | Nach Abschluss aller Übersetzungen, | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== lrelease ===== | ||
+ | |||
+ | Mit | ||
+ | <code shell> | ||
+ | pyside6-lrelease lang/ | ||
+ | </ | ||
+ | wird die '' | ||
+ | |||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ====== Andere Möglichkeiten ====== | ||
+ | |||
+ | <WRAP todo round center 60%> | ||
+ | Check '' | ||
+ | </ | ||