我发现有些项目使用_
函数将字符串作为参数,如_("Hello World")
。但我找不到任何关于它是什么以及如何使用它的手册或文章。
我想这与i18n和l10n有关(我在互联网上找到的一篇文章中提到过),但是你能解释一下它是如何工作的以及如何使用它吗?
答案 0 :(得分:3)
这就是GNU gettext
本地化功能。您可以为函数调用中指定的字符串提供特定于语言的备用字符串。
有xgettext
工具,可以从您的应用程序代码生成.pot
文件(可移植对象模板的缩写),然后翻译人员可以.po
它的本地化文件。然后,您可以将这些与您的应用程序捆绑在一起,并提供更广泛使用的软件。
答案 1 :(得分:2)
的I18n。请参阅此处的gettext示例:https://ewgeny.wordpress.com/2012/05/10/supporting-multiple-languages-in-your-application-a-simple-gettext-step-by-step-example/
答案 2 :(得分:0)
还发现了一些关于这个函数究竟是做什么的信息,它似乎是Vala中Glib.dgettext()
函数的宏,这来自valadoc.org
:
dgettext
public unowned string dgettext (string? domain, string msgid)
This function is a wrapper of dgettext which does not translate the message if the default domain as set with textdomain has no translations for the current locale.
...
Applications should normally not use this function directly, but use the _ macro for translations.