C Programm- Sprachumschaltung
Hallo,
ich möchte ein programm schreiben welches einen Text in Abhängigkeit von der gesetzen locale ausgibt.
also wenn ich export LANG=en_US setze, soll der Text in englisch ausgegeben werden.
Kennt sich hier jamand vielleicht damit aus?
Es hat schon einmal bei mir geklappt aber ich kann mir nicht erklären warum es nicht mehr funktioniert.
Grüße,
Sanastasia
ich möchte ein programm schreiben welches einen Text in Abhängigkeit von der gesetzen locale ausgibt.
also wenn ich export LANG=en_US setze, soll der Text in englisch ausgegeben werden.
Kennt sich hier jamand vielleicht damit aus?
Es hat schon einmal bei mir geklappt aber ich kann mir nicht erklären warum es nicht mehr funktioniert.
Grüße,
Sanastasia
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 374230
Url: https://administrator.de/contentid/374230
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Sanastasia,
Ist LANG eine Variable im Programm oder ein Parameter der übergeben wird oder etwas das Du aus dem OS ausliest?
In den ersten beiden Fällen verstehe ich das Problem nicht.
locale (Cultures) schreibt man eigentlich mit Binde- und nicht mit Unterstrich, also en-US und nicht en_US.
Wenn Du es in Abhängigkeit vom System machst, dann solltest Du die Anzeigesprache auslesen und nicht die Installationssprache.
Für welches Betriebssystem schreibst Du das Programm und ist es tatsächlich C oder C# oder C++?
Gruß Frank
Zitat von @Sanastasia:
...Abhängigkeit von der gesetzen locale...
also wenn ich export LANG=en_US setze...
...Abhängigkeit von der gesetzen locale...
also wenn ich export LANG=en_US setze...
Ist LANG eine Variable im Programm oder ein Parameter der übergeben wird oder etwas das Du aus dem OS ausliest?
In den ersten beiden Fällen verstehe ich das Problem nicht.
If "LANG"=="en_US" print "Hello World"
If "LANG"=="de_DE" print "Hallo Welt"
locale (Cultures) schreibt man eigentlich mit Binde- und nicht mit Unterstrich, also en-US und nicht en_US.
Wenn Du es in Abhängigkeit vom System machst, dann solltest Du die Anzeigesprache auslesen und nicht die Installationssprache.
Für welches Betriebssystem schreibst Du das Programm und ist es tatsächlich C oder C# oder C++?
Gruß Frank
Hallo Sanastasia,
bei Linux und C kann ich Dir leider nicht mit konkretem Wissen oder Code helfen.
...und möchtest es auch so belassen?
Etwas Code ist schon mal hilfreich und reicht eventuell auch jemandem, der sich damit auskennt.
Ich frage mich bloß: Wo setzt Du
Gruß Frank
bei Linux und C kann ich Dir leider nicht mit konkretem Wissen oder Code helfen.
...und möchtest es auch so belassen?
Etwas Code ist schon mal hilfreich und reicht eventuell auch jemandem, der sich damit auskennt.
Ich frage mich bloß: Wo setzt Du
export LANG=en_US
?Gruß Frank
Du kannst sicher in Abhängigkeit von der locale Einstellung unterschiedliche Texte ausgeben, aber dass ein Text automatisch übersetzt wird, ist mir neu (auch wenn ich nichts mit Linux am Hut habe ...).
ungetestet
Steffen
ungetestet
#include <stdio.h>
#include <string.h>
#include <locale.h>
int main (void)
{
char buffer[BUFSIZ] = {0};
strcpy(buffer, setlocale(LC_ALL, ""));
if (strncasecmp(buffer ,"de_DE", 5u) == 0)
puts("Deutsch");
else if (strncasecmp(buffer ,"en_US", 5u) == 0)
puts("English");
else
puts("unbekannt")
return 0;
}
Steffen