Python - mehrsprachiges GUI
-
Ok, hier mal kurz was zum Thema, wie man ein GUI, z.B. mein Restic UI ;), mehrsprachig gestalten kann. Dazu bin ich über eine tolle Anleitung gestolpert.
How to Translate Python Applications with the GNU gettext Module
Learn how to use the GNU gettext module, bundled with Python's official standard library, to get your Python i18n and l10n development going.
Phrase (phrase.com)
Es gibt in Python das Modul gettext, damit kann man seine Anwendung mehrsprachig gestalten. Das ist gar nicht so einfach, wie ich mir das am Anfang vorgestellt habe. Heute hier an dieser Stelle nur ein paar Notizen, ich werde evt. später darauf nochmal eingehen.
Die Ordnerstruktur
base.pot
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2022-04-26 17:11+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: /home/frank/restic_ui/src/restic_ui.py:130 msgid "This is a translatable string." msgstr "" #: /home/frank/restic_ui/src/restic_ui.py:4118 msgid "Restic version" msgstr ""
base.po (DE)
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2022-04-26 16:52+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: /home/frank/restic_ui/src/restic_ui.py:127 msgid "This is a translatable string." msgstr "TESTING" #: /home/frank/restic_ui/src/restic_ui.py:4109 msgid "Restic version" msgstr "Anzeige der Restic version"
Und zwei Befehle, die man dazu noch benötigt.
msgfmt -o base.mo base pygettext3.8 -d base -o /home/frank/restic_ui/locales/base.pot /home/frank/restic_ui/src/restic_ui.py
Jetzt muss ich mir noch Gedanken darüber machen, ob ich das brauche und so umsetze.
-
-
Restic UI - Changelog
Angeheftet Restic UI -
-
-
-
-
-