Я смотрю на некоторый исходный код C, и я нашел это:
fprintf(stderr, _("Try `%s --help' for more information.\n"), command);
Я уже видел подчеркивание, когда смотрел wxWidget, и я читал его для интернационализации. Я нашел это действительно ужасным (наименее интуитивное имя когда-либо), но я уговорил его просто еще одно странное соглашение wxWidget.
Теперь я нахожу его снова в каком-то источнике Alsa. Кто-нибудь знает, откуда он?
Ответ 1
Он поставляется с GNU gettext
, пакетом, предназначенным для облегчения процесса интернационализации. Функция _()
- это просто оболочка строки. Эта функция в основном заменяет данную строку во время исполнения на перевод на системном языке, если она доступна (т.е. Если они отправили файл .mo
для этого языка в программу).
Ответ 2
Это будет от gettext
Ответ 3
Он исходит из gettext. Первоначально задуманная, интернационализация была слишком длинной, чтобы печатать каждый раз, когда вам нужна была интернационализированная строка. Таким образом, программисты создали ярлык i18n (потому что между интервалами "i" и "n" в интернационализации имеется 18 букв), и вы можете увидеть исходный код там, используя это. Очевидно, хотя i18n был слишком длинным, поэтому теперь его просто подчеркивание.