GTK+3 перешел на freedesktop.org Именование значков Спецификация и интернационализированные ярлыки. В качестве примера возьмем Gtk.Stock.OPEN. документация GNOME Developer для GTK_STOCK_OPEN дает две замены:
GTK_STOCK_OPEN устарел с версии 3.10 и не должен использоваться в новом коде. Используйте именованную иконку «document-open» или метку «_Open».
Метод именованных значков
Метод именованного значка будет выглядеть примерно так:
var open_icon = new Gtk.Image.from_icon_name( "document-open",
IconSize.SMALL_TOOLBAR
)
var open_button = new Gtk.ToolButton( open_icon, null )
Метод этикетки
Метод метки использует gettext
для перевода метки на текущий язык выполнения программы. На это указывает подчеркивание перед меткой. Строка в вашей программе будет:
var open_button = new Gtk.ToolButton( null, dgettext( "gtk30", "_Open") )
gettext
использует домены, которые представляют собой файлы, содержащие переводы. Домен Gtk+3 — gtk30
. Вам также потребуется добавить строку в начале вашей программы, чтобы изменить локаль по умолчанию для языка C, то есть американский английский ASCII, на локаль среды выполнения:
init
Intl.setlocale()
Чтобы скомпилировать программу Genie, вам нужно установить домен по умолчанию для gettext
. Обычно это ничего не устанавливает:
valac -X -DGETTEXT_PACKAGE --pkg gtk+-3.0 my_program.gs
Когда вы запустите свою программу, вы получите «_Open», переведенный на ваш язык. Вы также можете изменить локаль. Если у вас установлена французская локаль, запустите программу с помощью:
LC_ALL=fr ./my_program
будет иметь метку "_Open" на французском языке.
Вы можете увидеть в примерах _( "_OPEN" )
. _()
— это функция, аналогичная dgettext
, но использующая домен по умолчанию. Вы можете захотеть сохранить домен по умолчанию для файла перевода для вашей собственной программы. Использование _( "_translate me" )
немного меньше, чем dgettext( "mydomain", "_translate me" )
. Чтобы установить домен по умолчанию в Genie, добавьте строку перед init
:
const GETTEXT_PACKAGE:string = "mydomain"
init
Intl.setlocale()
person
AlThomas
schedule
23.04.2016
Gtk.ToolButton.new()
в сочетании сGtk.Image.from_icon_name()
. В документации C API есть предложение рядом с каждым товаром в наличии. - person andlabs   schedule 23.04.2016