【问题标题】:Underscore `_` before the format string格式字符串前的下划线`_`
【发布时间】:2010-07-26 14:57:14
【问题描述】:

我在这里查看一些 C 源代码,我发现了这个:

fprintf(stderr, _("Try `%s --help' for more information.\n"), command);

我在查看 wxWidget 时已经看到了下划线,我读到它是用于国际化的。我发现它真的很可怕(有史以来最不直观的名字),但我认为这只是另一个奇怪的 wxWidget 约定。

现在我在一些 Alsa 资源中再次找到它。有谁知道它来自哪里?

【问题讨论】:

标签: c internationalization


【解决方案1】:

它来自 GNU gettext,这是一个旨在简化国际化过程的软件包。 _() 函数只是一个字符串包装器。这个函数基本上在运行时用系统语言的翻译替换给定的字符串,如果可用的话(即,如果他们为程序提供了该语言的.mo 文件)。

【讨论】:

    【解决方案2】:

    它来自gettext。最初想到的是,每次需要国际化字符串时,国际化时间都太长,无法输入。因此程序员创建了快捷方式 i18n(因为在国际化中,“i”和“n”之间有 18 个字母),您可能会看到使用它的源代码。显然虽然 i18n 仍然太长,所以现在它只是一个下划线。

    【讨论】:

      【解决方案3】:

      那将来自gettext

      【讨论】:

        猜你喜欢
        • 2015-12-08
        • 2012-01-29
        • 2018-05-18
        • 2021-12-05
        • 2015-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多