Localization Vala、资源和本地化

Localization Vala、资源和本地化,localization,resources,internationalization,embedded-resource,vala,Localization,Resources,Internationalization,Embedded Resource,Vala,在vala中处理资源(如图像、文件等)的最佳方式是什么?是否有任何资源管理系统?什么是本地化应用程序的最佳方法?我是从.NET环境来到Vala的,在那里本地化和资源管理只是小菜一碟,但我现在完全迷失在Vala中 有什么建议吗 谢谢。GIO 2.32介绍了GResource。Vala文件位于,C文件位于 GResource的想法是,您可以使用它来创建C代码,然后可以将其包含在您的Vala应用程序中(您可能需要创建一个简单的VAPI来配合它)。我还不知道Vala中有任何例子(Glib2.32刚刚发布

在vala中处理资源(如图像、文件等)的最佳方式是什么?是否有任何资源管理系统?什么是本地化应用程序的最佳方法?我是从.NET环境来到Vala的,在那里本地化和资源管理只是小菜一碟,但我现在完全迷失在Vala中

有什么建议吗


谢谢。

GIO 2.32介绍了GResource。Vala文件位于,C文件位于

GResource的想法是,您可以使用它来创建C代码,然后可以将其包含在您的Vala应用程序中(您可能需要创建一个简单的VAPI来配合它)。我还不知道Vala中有任何例子(Glib2.32刚刚发布),但它应该非常简单

但传统上,Linux上的软件只是将资源保存在XDG目录中的单独文件中。然后根据硬编码值和/或环境变量确定路径。。。GLib甚至包含了一些函数来简化这个过程(它们位于名称空间中)

至于i18n/l10n,我所知道的大多数软件都使用gettext。这些函数绑定在GLib名称空间(GLib.\uu、GLib.dgettext、GLib.dngettext等)中。唯一真正复杂的是您需要在C级别定义GETTEXT_包。如果您直接从valac编译为可执行文件,则只需传递-X-DGETTEXT_PACKAGE=foo即可。如果您使用的是构建系统,您需要了解如何在该构建系统中添加C标志(对于自动工具,您只需将它们添加到*\CFLAGS变量中)

在那之后,大部分工作都是构建系统集成,就像在C语言中一样,这应该很容易让你了解你正在使用的任何构建系统(例如,在谷歌搜索“gettext autotools”,就会得到161k点击量)