Проблема отображает дни недели на определенных языках, используя GetLocaleInfoEx - Cebuano, Tagalog - PullRequest
1 голос
/ 29 апреля 2020

У меня есть следующие языковые идентификаторы (которые до сих пор я использовал для HTML языковых кодов):

aryStrLangId.Add(_T("en")); // English
aryStrLangId.Add(_T("de")); // German
aryStrLangId.Add(_T("es")); // Spanish
aryStrLangId.Add(_T("it")); // Italian
aryStrLangId.Add(_T("pl")); // Polish
aryStrLangId.Add(_T("fr")); // French
aryStrLangId.Add(_T("pt")); // Portuguese Brazil
aryStrLangId.Add(_T("nl")); // Dutch
aryStrLangId.Add(_T("sv")); // Swedish
aryStrLangId.Add(_T("sl")); // Slovenian
aryStrLangId.Add(_T("cs")); // Czech
aryStrLangId.Add(_T("fi")); // Finnish
aryStrLangId.Add(_T("da")); // Danish
aryStrLangId.Add(_T("uk")); // Ukranian
aryStrLangId.Add(_T("ru")); // Russian
aryStrLangId.Add(_T("tl")); // Tagalog
aryStrLangId.Add(_T("ht")); // Hatian Creole
aryStrLangId.Add(_T("af")); // Afrikaans
aryStrLangId.Add(_T("sq")); // Albanian
aryStrLangId.Add(_T("zh-Hans")); // Chinese Simplified
aryStrLangId.Add(_T("hr")); // Croatian
aryStrLangId.Add(_T("tr")); // Turkish
aryStrLangId.Add(_T("tw")); // Twi
aryStrLangId.Add(_T("sw")); // Swahili
aryStrLangId.Add(_T("et")); // Estonian
aryStrLangId.Add(_T("ro")); // Romanian
aryStrLangId.Add(_T("el")); // Greek
aryStrLangId.Add(_T("bg")); // Bulgarian
aryStrLangId.Add(_T("mg")); // Malagasy
aryStrLangId.Add(_T("ar")); // Arabic
aryStrLangId.Add(_T("id")); // Indonesian
aryStrLangId.Add(_T("hi")); // Hindi
aryStrLangId.Add(_T("ta")); // Tamil
aryStrLangId.Add(_T("vi")); // Vietnamese
aryStrLangId.Add(_T("zu")); // Zulu
aryStrLangId.Add(_T("guw")); // Gun 
aryStrLangId.Add(_T("ln")); // Lingala
aryStrLangId.Add(_T("pt")); // Portuguese Portugal
aryStrLangId.Add(_T("pa")); // Punjabi
aryStrLangId.Add(_T("mt")); // Maltese
aryStrLangId.Add(_T("hu")); // Hungarian
aryStrLangId.Add(_T("fr")); // Saramaccan (uses French)
aryStrLangId.Add(_T("am")); // Amharic
aryStrLangId.Add(_T("ja")); // Japanese
aryStrLangId.Add(_T("tn")); // Setswana
aryStrLangId.Add(_T("srn")); // Sranantongo
aryStrLangId.Add(_T("drk")); // Aukan
aryStrLangId.Add(_T("hy")); // Armenian
aryStrLangId.Add(_T("gu")); // Gujarati
aryStrLangId.Add(_T("st")); // Sesotho
aryStrLangId.Add(_T("ceb")); // Cebuano
aryStrLangId.Add(_T("ts"));  // Tsonga

Я решил попробовать и использовать вышеуказанные коды для отображения дней недели :

CString     strDay;
TCHAR       szDay[_MAX_PATH];
int         iDay;
// note:
// 1 is monday,
// 2 is tuesday etc..
// 7 is sunday
LCTYPE      lcDay[] =
{
    LOCALE_SDAYNAME7,
    LOCALE_SDAYNAME1,
    LOCALE_SDAYNAME2,
    LOCALE_SDAYNAME3,
    LOCALE_SDAYNAME4,
    LOCALE_SDAYNAME5,
    LOCALE_SDAYNAME6
};

for(iDay = 0; iDay < 7; iDay++)
{
    {
        GetLocaleInfoEx(theApp.GetHtmlLanguageCode(),
            lcDay[iDay],
            szDay,
            _MAX_PATH);
        strDay = szDay;
    }

    m_cbDays.AddString(strDay);
}

Приведенный выше код работает корректно для всех языков, кроме:

aryStrLangId.Add(_T("drk")); // Aukan
aryStrLangId.Add(_T("ceb")); // Cebuano
aryStrLangId.Add(_T("guw")); // Gun 
aryStrLangId.Add(_T("ht"));  // Hatian Creole
aryStrLangId.Add(_T("srn")); // Sranantongo
aryStrLangId.Add(_T("tl"));  // Tagalog
aryStrLangId.Add(_T("tw"));  // Twi

Как можно использовать GetLocaleInfoEx для отображения дней недели на этих языках?

Я пытался использовать, например, twi вместо tw, и это не имело никакого значения.

...