2017-02-22 2 views
0

Ich habe mir setlocale angesehen, aber ich bin schwer zu finden, was ich suche. IchVerwenden Sie die richtigen Codes mit setlocale

In meinem Code haben:

void CMeetingScheduleAssistantApp::SetLocale() 
{ 
    CString strLang[NUM_LANGUAGES] = 
    { 
     _T("eng"), _T("deu"), _T("esp"), _T("ita"), 
     _T("plk"), _T("fra"), _T("ptb"), _T("nld"), 
     _T("sve"), _T("slv"), _T("csy"), _T("fin"), 
     _T("dan"), _T("ukr"), _T("rus"), 
     _T("eng"), /*_T("fpo") Tagalog */ 
     _T("eng"), /* Haitian Creole */ 
     _T("eng"), /* Afrikaans */ 
     _T("sqi"), 
     _T("chs"), /* Chinese (Simplified) */ 
     _T("hrv"), 
     _T("trk"), 
     _T("eng"), /* Twi */ 
     _T("swk"), // AJT v11.3.4 
     _T("eng"), // _T("eti") Estonian AJT v12.0.5 
     _T("rom"), // Romanian AJT v12.0.8 
     _T("ell"), // Greek AJT v13.0.0 
     _T("bgr"), // Bulgarian AJT v13.0.2 
     _T("eng"), // Malagasy AJT v14.0.4 
     _T("ara"), // Arabic AJT v16.0.0 
     _T("ind"), // Indonesian AJT v16.0.2 
     _T("hin"), // Hindi AJT v16.0.7 
     _T("tai"), // Tamil AJT v16.1.0 
     _T("vit"), // Vietnamese v16.1.1 
     _T("eng"), // Zulu AJT v16.1.6 
     _T("eng"), // Gun AJT v17.0.9 
     _T("ln-CG"), // Lingala v17.0.9 
     _T("ptg") // Portuguese Portugal v17.1.0 
     // Add more languages here 
    }; 

    _tsetlocale(LC_ALL, strLang[m_eLanguage - LANGUAGE_ENGLISH]); 
} 

Dieses getan hat und immer OK funktioniert. Datumsformate werden nach diesem Aufruf korrekt formatiert.

Wenn ich jedoch die Links zu dem oben genannten Hilfethema anschaue, kann ich keine Codes wie ptb usw. finden. Nur pt-BR.

Ich nehme an, dass meine Codes noch gültig sind und sind sie überall dokumentiert?

Antwort

1

setlocale erwartet einen Locale-Namen wie unter Locale Names, Languages, and Country/Region Strings dokumentiert.

A locale Namen auf der Sprache Tagging Konventionen von RFC 4646 (Windows Vista und höher) basiert, und wird durch LOCALE_SNAME dargestellt: Ein Gebietsschema kann durch locale name identifiziert werden. Im Allgemeinen wird das Muster <Sprache> - <REGION> verwendet. Hier ist die Sprache ein kleingeschriebener ISO 639 Sprachcode. Die Codes von ISO 639-1 werden verwendet, wenn sie verfügbar sind. Ansonsten werden Codes aus ISO 639-2/T verwendet.

[...]

Wenn das locale eine neutrale locale (keine Region) ist, der LOCALE_SNAME Wert folgt dem Muster <Sprache>.

Eine vollständige Liste der dreistelligen ISO 639-2-Sprachcodes ist unter wikipedia veröffentlicht.

Verwandte Themen