Установить язык для выполнения одной программы

11

Завершите пример «Привет, мир», C ++ i18n gettext (). устанавливает переменную среды LANG с помощью экспорта перед выполнением программы (Linux):

export LANG=es_MX.utf8
./hellogt

Есть ли способ установить язык только во время выполнения hellogt, как аргумент командной строки? Это было бы удобно для тестирования программ.

CW Holeman II
источник

Ответы:

11

В ksh, bash и аналогичных оболочках,

LANG=es_MX.utf8 ./hellogt

будет установлен LANG=es_MX.utf8только для вызова ./hellogt.

Точнее, есть программа под названием env

env LANG=es_MX.utf8 ./hellogt

который установит переменные окружения и запустит указанную программу. Это работает во всех оболочках, в том числе cshи традиционных sh(которые не поддерживают первый метод).

ephemient
источник
8

Вы имеете в виду что-то вроде:

LANG=es_MX.utf8 ./hellogt

? Или, может быть, вы хотите проанализировать командную строку (argv), найти переданный язык и передать его в setlocale?

Tanktalus
источник
Для тестирования программ так без изменения кода.
CW Holeman II
Итак, первый.