Stellen Sie die Sprache für eine einzelne Programmausführung ein

11

Komplettes C ++ i18n gettext () "Hallo Welt" Beispiel. Legt die Umgebungsvariable LANG mithilfe des Exports fest, bevor das Programm ausgeführt wird (Linux):

export LANG=es_MX.utf8
./hellogt

Gibt es eine Möglichkeit, die Sprache nur während der Ausführung von hellogt festzulegen, wie z. B. ein Befehlszeilenargument? Dies wäre praktisch zum Testen von Programmen.

CW Holeman II
quelle

Antworten:

11

In ksh, bash und ähnlichen Muscheln,

LANG=es_MX.utf8 ./hellogt

wird LANG=es_MX.utf8nur für den Aufruf von gesetzt ./hellogt.

Portabler gibt es ein Programm namens env

env LANG=es_MX.utf8 ./hellogt

Dadurch werden Umgebungsvariablen festgelegt und das angegebene Programm ausgeführt. Dies funktioniert in allen Shells, einschließlich cshund traditionell sh(die die erste Methode nicht unterstützen).

kurzlebig
quelle
8

Du meinst so etwas wie:

LANG=es_MX.utf8 ./hellogt

? Oder möchten Sie die Befehlszeile (argv) analysieren, die übergebene Sprache finden und an setlocale übergeben?

Tanktalus
quelle
Zum Testen von Programmen also ohne den Code zu ändern.
CW Holeman II
Also der erste.