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