2017-08-17 51 views
0

我有一個GSchema定義,像這樣一些標誌:是否可以將GSettings/GSchema <flags>標記爲可翻譯的?

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

不過,我已經被翻譯,這些不被gettext的處理或在.POT文件提供的通知。有什麼方法可以將這些標記爲可翻譯的嗎?

回答

1

默認值可以翻譯,但翻譯在運行時從.mo文件中替換。您必須將textdomain放在「<Schemalist>」的屬性「gettext-domain」中。 「<模式>」元素。您還必須將語言環境類別放入「<」默認>元素的屬性「類別」中。有關更多信息,請閱讀https://developer.gnome.org/gio/stable/GSettings.html中的「說明」段落。

我建議您檢查最近的Gtk應用程序的來源,看看不同的組件是如何本地化的。 GNU gettext最近得到了改進,可以更好地支持本地化桌面應用程序,因此該過程當前正在發展。特別是,你通常不再需要intltool。

+0

優秀的答案,我清楚地記得閱讀,但它只是沒有讓我的大腦。我已經在「schemalist」上設置了「gettext-domain」屬性;是否有必要將它放在「模式」上,還是足夠高? FWIW我使用介子來生成pot,po和mo文件;不知道是否使用intltool或不。 –

+0

我認爲這取決於所需的範圍(整個架構師或只是一個架構),在哪裏放置「gettext-domain」屬性。但我只是在這裏猜測。 Gedit(我通常竊取Gtk樣板代碼的源代碼)將其放在架構元素上,請參閱https://github.com/GNOME/gedit/blob/master/data/org.gnome.gedit.gschema.xml.in。 –

+0

經過一些快速測試,「schemalist」似乎這樣做,但我仍然無法獲取gettext識別枚舉尼克,除了「默認」標籤。哦,我的一位翻譯人員發現了一種可以讓他滿意的方法,GSchema的支持會很好,但我想這不是什麼問題。 –

相關問題