Recupérer le code lang locale iso 639 (fr_FR) avec std::locale

Recupérer le code lang locale iso 639 (fr_FR) avec std::locale - C++ - Programmation

Marsh Posté le 07-11-2012 à 12:19:12    

Bonjour,
Je dois rien comprendre aux Locales...
Je voudrais récupérer le code iso 639 de la locale utilisée par l'utilisateur courant, à partir de fonctions standard (std::locale par exemple).
 
Mais à l'usage, si je récupère std::locale().name(), j'ai la lettre "C" (pour Classique, je crois).
Mais je prefererais une chaine du type "fr_FR" ou "en_US".
 
Comment on fait pour connaitre la langue courante de l'utilisateur avec des fonctions standards (non windows, non mac, non thirdparty) ?

Reply

Marsh Posté le 07-11-2012 à 12:19:12   

Reply

Marsh Posté le 07-11-2012 à 12:52:23    

En voyant un petit exemple de l'utilisation de std::locale, il semblerait que tu puisses avoir presque ce que tu veux, vu qu'ils obtiennent "English_United States.1252" via un appel à setlocale(LC_ALL,NULL).
 
Il semblerait qu'ils aient récupéré la valeur par défaut du système avec setlocale (LC_ALL,"" );


---------------
last.fm
Reply

Marsh Posté le 07-11-2012 à 13:29:19    

Merci, ca semble avancer, néanmois, voici ce que j'obtiens:
sous mingw sous windows XP, j'obtiens
setlocale(LC_ALL, NULL)  => "C"
setlocale(LC_ALL, "" ) => "French_France.1252"
 
et sous mac 10.5
setlocale(LC_ALL, NULL)  => "C"
setlocale(LC_ALL, "" )  => "C"
 
Donc, c'est pas encore ça... mais c'est mieux, y'a un cas où j'ai obtenu qqchose d'utilisable.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed