GIO 2.32 представил GResource. Документация Vala находится по адресу http://valadoc.org/#!api=gio-2.0/GLib.Resource и C находится по адресу http://developer.gnome.org/gio/stable/gio-GResource.html.
Идея GResource заключается в том, что вы используете glib- compile-resources для создания кода C, который затем можно будет включить в ваше приложение Vala (вы, вероятно, захотите создать тривиальный VAPI для работы с ним). Я пока не знаю ни одного примера в Vala (только что был выпущен glib 2.32), но это должно быть довольно просто.
Однако традиционно программное обеспечение в Linux просто хранит ресурсы в отдельных файлах в каталоге XDG. Затем пути либо определяются на основе жестко заданных значений и / или переменных среды ... GLib даже включает функции, упрощающие эту задачу (они находятся в GLib.Environment).
Что касается i18n / l10n, большинство известных мне программ использует gettext. Функции связаны в пространстве имен GLib (GLib._, GLib.dgettext, GLib.dngettext и т. Д.). Единственная реальная сложность заключается в том, что вам нужно определить GETTEXT_PACKAGE на уровне C до того, как Vala включит gi18n-lib.h. Если вы компилируете исполняемый файл непосредственно из valac, вы можете просто передать -X -DGETTEXT_PACKAGE = foo. Если вы используете систему сборки, вам нужно выяснить, как добавить флаги C в эту систему сборки (для автоинструментов вы просто добавляете их в свои переменные * _CFLAGS).
После этого большая часть работы заключается в интеграции системы сборки и работает так же, как в C, что должно быть легко понять для любой системы сборки, которую вы используете (например, поиск в Google "gettext autotools" дает 161k хиты).
person
nemequ
schedule
23.05.2012