Функция подчеркивания

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

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

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

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

12
задан Joshua 22 February 2019 в 14:59
поделиться

3 ответа

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

14
ответ дан 2 December 2019 в 04:25
поделиться

Это будет из gettext

8
ответ дан 2 December 2019 в 04:25
поделиться

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

12
ответ дан 2 December 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: