我看过setlocale,但我很难找到我想要的东西。
在我的代码中,我有:
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]);
}
这已经完成并且始终正常。拨打此电话后日期格式正确。
但是看看上面提到的帮助主题提供的链接,我找不到像ptb
等列出的代码。仅pt-BR
。
我认为我的代码仍然有效,是否可以在任何地方记录?
答案 0 :(得分:1)
setlocale需要Locale Names, Languages, and Country/Region Strings下记录的区域设置名称。可以通过locale name标识区域设置:
locale名称基于RFC 4646(Windows Vista及更高版本)的语言标记惯例,由LOCALE_SNAME表示。通常,模式< language> - < REGION>用来。这里,language是一个小写的ISO 639语言代码。可用时使用ISO 639-1中的代码。否则,使用ISO 639-2 / T的代码。
[...]
如果区域设置是中性区域设置(无区域),则LOCALE_SNAME值将遵循模式< language>。
ISO 639-2三字母语言代码的完整列表发布在wikipedia。