wie setze ich die richtigen erste Gebietsschema für ein C++ - Programm unter Windows?
Ich bin Recht neu auf lokalisierte Programmierung, und ich versuche, herauszufinden, wie die richtige erste Gebietsschema für eine neu aufgelegte, nicht verwaltete C++ - Anwendung (innerhalb der app).
Soweit ich das beurteilen kann, neue Anwendungen starten mit der C-locale, anstatt den richtigen regionalen Lokalisierung (Englisch, Deutsch, etc). Also, was ich tun müssen, ist Anruf setlocale( LC_ALL, "???" )
aber ich bin mir nicht sicher, wie man den richtigen Wert für das zweite argument. Es wird so etwas wie "Englisch" oder "Deutsch:Deutschland" - im Grunde, was Gebietsschema festgelegt wurde durch den Benutzer über die regions-und Sprachoptionen in der Systemsteuerung. Nur um klar sein, ich bin nicht auf der Suche für how to format der locale-string, ich bin auf der Suche nach dem richtigen Gebietsschema-string für den computer, auf dem die app ausgeführt wird.
Ich vermute, dass es gibt einige Win32-API, die mir geben würde, oder vielleicht ein registry-Schlüssel, enthält den richtigen Wert. Weiß jemand, was ich tun sollte?
InformationsquelleAutor der Frage Charlie | 2009-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
setlocale() ist C, nicht C++. Ich erinnere mich vage sehen die Interferenz zwischen den beiden auf VC6, aber das war ein Fehler. Normalerweise, setlocale() wirkt sich auf das Verhalten der C-Funktionen nur.
In C++, die Lokalisierung, die gesteuert wird durch die std::locale-Klasse. Standardmäßig locale-sensitive Operationen die Globale locale, das man durch Standard-Bau ein locale-Objekt, und kann mit std::locale::global(const std::locale&).
Bau ein locale-Objekt mit einer leeren Zeichenfolge (std::locale("")) erzeugt ein locale entsprechend der Programm-Umgebung.
Beim Programmstart, das Globale locale "C" ist oder "Classic" - Schauplatz. Um die Globale locale des Programms Umwelt locale (was ich denke ist, was Sie Fragen), Sie also schreiben:
Beispielsweise meine regional Einstellungen sind momentan auf Französisch(Kanada). Dies wird ausgeführt:
Drucke:
InformationsquelleAutor der Antwort Éric Malenfant