added wxLocale::IsAvailable() (extended patch 1547191)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-09-10 23:28:20 +00:00
parent 6ea0cc70f7
commit cec5ffc46d
5 changed files with 87 additions and 7 deletions

View File

@@ -2711,6 +2711,31 @@ wxMsgCatalog *wxLocale::FindCatalog(const wxChar *szDomain) const
return NULL;
}
// check if the given locale is provided by OS and C run time
/* static */
bool wxLocale::IsAvailable(int lang)
{
const wxLanguageInfo *info = wxLocale::GetLanguageInfo(lang);
wxCHECK_MSG( info, false, _T("invalid language") );
#ifdef __WIN32__
if ( !info->WinLang )
return false;
if ( !::IsValidLocale
(
MAKELCID(MAKELANGID(info->WinLang, info->WinSublang),
SORT_DEFAULT),
LCID_INSTALLED
) )
return false;
#else // !__WIN32__
// TODO: test if setlocale(info->CanonicalName) works under other OS?
#endif // __WIN32__/!__WIN32__
return true;
}
// check if the given catalog is loaded
bool wxLocale::IsLoaded(const wxChar *szDomain) const
{