Skip to content

Python - mehrsprachiges GUI

Python3
  • 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.

    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

    78385975-defa-4b70-8292-2d5b375f4036-grafik.png

    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.