Функция подчеркивания - PullRequest
10 голосов
/ 26 июля 2010

Я здесь смотрю на некоторый исходный код C и нашел это:

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

Я уже видел подчеркивание, когда смотрел на wxWidget и читал, что он используется для интернационализации. Я нашел это действительно ужасным (наименее интуитивное имя из всех), но я подумал, что это просто еще одно странное соглашение wxWidget.

Теперь я снова нахожу это в каком-то источнике Alsa. Кто-нибудь знает откуда это?

Ответы [ 3 ]

12 голосов
/ 26 июля 2010

Он поставляется из GNU gettext, пакета, предназначенного для облегчения процесса интернационализации. Функция _() - это просто оболочка строки. Эта функция в основном заменяет данную строку во время выполнения переводом на язык системы, если он доступен (то есть, если они поставили файл .mo для этого языка вместе с программой).

10 голосов
/ 26 июля 2010

Это происходит от gettext.Первоначально задуманный, интернационализация была слишком длинной, чтобы печатать каждый раз, когда вам нужна интернационализированная строкаТаким образом, программисты создали ярлык i18n (потому что в интернационализации между буквами «i» и «n» есть 18 букв), и вы можете увидеть исходный код, используя его.Очевидно, что i18n был все еще слишком длинным, так что теперь это только подчеркивание.

8 голосов
/ 26 июля 2010

Это будет от gettext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...