Définir la langue pour une seule exécution de programme

11

Exemple complet de C ++ i18n gettext () «hello world». définit la variable d'environnement LANG à l'aide de l'exportation avant d'exécuter le programme (Linux):

export LANG=es_MX.utf8
./hellogt

Existe-t-il un moyen de définir la langue tout en exécutant hellogt, comme un argument de ligne de commande? Ce serait pratique pour tester des programmes.

CW Holeman II
la source

Réponses:

11

Dans les shells ksh, bash et similaires,

LANG=es_MX.utf8 ./hellogt

sera défini LANG=es_MX.utf8uniquement pour l'invocation de ./hellogt.

Plus facilement, il existe un programme appelé env

env LANG=es_MX.utf8 ./hellogt

qui définira les variables d'environnement et exécutera le programme spécifié. Cela fonctionne dans tous les shells, y compris cshet traditionnels sh(qui ne prennent pas en charge la première méthode).

éphémère
la source
8

Vous voulez dire quelque chose comme:

LANG=es_MX.utf8 ./hellogt

? Ou peut-être voulez-vous dire que vous voulez analyser la ligne de commande (argv), trouver la langue transmise et la passer à setlocale?

Tanktalus
la source
Pour tester des programmes donc sans modifier le code.
CW Holeman II
Donc, le premier.