2017-08-17 2 views
0

Ich habe ein GSchema einige Flags definiert, etwa so:Ist GSettings/GSchema <flags> als übersetzbar zu markieren?

<flags id="org.example.program"> 
    <value nick="ENGLISH_WORD" value="1"/> 
    <value nick="ANOTHER_WORD" value="2"/> 
</flags> 

Jedoch habe ich von einem Übersetzer informiert worden, dass diese durch gettext nicht verarbeitet werden oder in der POT-Datei angeboten. Gibt es eine Möglichkeit, diese als übersetzbar zu markieren?

Antwort

1

Die Standardwerte können übersetzt werden, aber die Übersetzungen werden zur Laufzeit aus .mo-Dateien ersetzt. Sie müssen die Textdomäne in das Attribut "gettext-domain" des "<schemalist>" resp. "<Schema>" Element. Außerdem müssen Sie den Gebietsschema-Typ in das Attribut "category" des Elements "<default>" einfügen. Lesen Sie den Abschnitt "Beschreibung" in https://developer.gnome.org/gio/stable/GSettings.html für weitere Informationen.

Ich empfehle, dass Sie die Quellen einer aktuellen Gtk-Anwendung untersuchen und sehen, wie die verschiedenen Komponenten lokalisiert sind. GNU gettext wurde kürzlich verbessert, um die Lokalisierung von Desktop-Anwendungen besser zu unterstützen. Daher entwickelt sich der Prozess derzeit weiter. Insbesondere benötigen Sie in der Regel kein intltool.

+0

Ausgezeichnete Antwort, ich erinnere mich klar daran, das zu lesen, aber es hat es einfach nicht in mein Gehirn geschafft. Ich habe bereits das Attribut "gettext-domain" auf "schemalist" gesetzt; ist es notwendig, es auch auf "Schema" zu setzen, oder ist die oberste Ebene genug? FWIW Ich benutze Meson um die Pot, Po und Mo Dateien zu erzeugen; nicht sicher, ob das intlttool verwendet oder nicht. –

+0

Ich denke, es hängt vom gewünschten Umfang ab (gesamter Schemalist oder nur ein Schema), wo das Attribut "gettext-domain" zu setzen ist. Aber ich vermute nur hier. Gedit (meine übliche Quelle zum Stehlen von Gtk-Boilerplate-Code) setzt es auf die Schema-Elemente, siehe https://github.com/GNOME/getit/blob/master/data/org.gnome.gedit.gschema.xml.in. –

+0

Nach ein paar schnellen Tests scheint "schemalist" es zu tun, aber ich kann immer noch nicht gettext bekommen, um enum nicks zu erkennen, außer für das "default" -Tag. Na ja, ein Übersetzer von mir fand einen Weg, um es zu seiner Zufriedenheit zu hacken, GSchema-Unterstützung wäre nett, aber ich denke, das ist nicht das, wofür Enum-Nicks da sind. –

Verwandte Themen