Add wxLanguageInfo::GetCanonicalWithRegion() helper
This simple function allows to simplify the code by avoid to test for CanonicalRef before using either it or CanonicalName in multiple places. No real changes. See #22252.
This commit is contained in:
@@ -151,6 +151,9 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo
|
|||||||
// supported
|
// supported
|
||||||
wxString GetLocaleName() const;
|
wxString GetLocaleName() const;
|
||||||
|
|
||||||
|
// returns CanonicalRef if set, otherwise CanonicalName
|
||||||
|
wxString GetCanonicalWithRegion() const;
|
||||||
|
|
||||||
// Call setlocale() and return non-null value if it works for this language.
|
// Call setlocale() and return non-null value if it works for this language.
|
||||||
//
|
//
|
||||||
// This function is mostly for internal use, as changing locale involves
|
// This function is mostly for internal use, as changing locale involves
|
||||||
|
|||||||
@@ -87,6 +87,16 @@ struct wxLanguageInfo
|
|||||||
string is empty.
|
string is empty.
|
||||||
*/
|
*/
|
||||||
wxString GetLocaleName() const;
|
wxString GetLocaleName() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return the canonical locale name including the region, if known.
|
||||||
|
|
||||||
|
The value is identical to @c CanonicalRef, if not empty,
|
||||||
|
otherwise it is identical to @c CanonicalName.
|
||||||
|
|
||||||
|
@since 3.1.6
|
||||||
|
*/
|
||||||
|
wxString GetCanonicalWithRegion() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -159,19 +159,24 @@ const char* wxLanguageInfo::TrySetLocale() const
|
|||||||
|
|
||||||
const char* wxLanguageInfo::TrySetLocale() const
|
const char* wxLanguageInfo::TrySetLocale() const
|
||||||
{
|
{
|
||||||
return wxSetlocale(LC_ALL, CanonicalRef.empty() ? CanonicalName : CanonicalRef);
|
return wxSetlocale(LC_ALL, GetCanonicalWithRegion());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __WINDOWS__/!__WINDOWS__
|
#endif // __WINDOWS__/!__WINDOWS__
|
||||||
|
|
||||||
wxString wxLanguageInfo::GetLocaleName() const
|
wxString wxLanguageInfo::GetLocaleName() const
|
||||||
{
|
{
|
||||||
wxString localeId = CanonicalRef.empty() ? CanonicalName : CanonicalRef;
|
wxString localeId = GetCanonicalWithRegion();
|
||||||
wxUILocale uiLocale = wxUILocale::FromTag(localeId);
|
wxUILocale uiLocale = wxUILocale::FromTag(localeId);
|
||||||
wxString localeName = uiLocale.IsSupported() ? uiLocale.GetName() : wxString();
|
wxString localeName = uiLocale.IsSupported() ? uiLocale.GetName() : wxString();
|
||||||
return localeName;
|
return localeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxLanguageInfo::GetCanonicalWithRegion() const
|
||||||
|
{
|
||||||
|
return CanonicalRef.empty() ? CanonicalName : CanonicalRef;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxUILocale
|
// wxUILocale
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -430,7 +435,7 @@ bool wxLocale::Init(int lang, int flags)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
name = info->Description;
|
name = info->Description;
|
||||||
shortName = info->CanonicalRef.empty() ? info->CanonicalName : info->CanonicalRef;
|
shortName = info->GetCanonicalWithRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
DoInit(name, shortName, lang);
|
DoInit(name, shortName, lang);
|
||||||
@@ -738,7 +743,7 @@ bool wxLocale::IsAvailable(int lang)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString localeTag = info->CanonicalRef.empty() ? info->LocaleTag : info->CanonicalRef;
|
wxString localeTag = info->GetCanonicalWithRegion();
|
||||||
wxUILocale uiLocale(wxLocaleIdent::FromTag(localeTag));
|
wxUILocale uiLocale(wxLocaleIdent::FromTag(localeTag));
|
||||||
|
|
||||||
return uiLocale.IsSupported();
|
return uiLocale.IsSupported();
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ locale_t TryCreateMatchingLocale(wxLocaleIdent& locId)
|
|||||||
it != infos.end();
|
it != infos.end();
|
||||||
++it )
|
++it )
|
||||||
{
|
{
|
||||||
const wxString& fullname = it->CanonicalRef.empty() ? it->CanonicalName : it->CanonicalRef;
|
const wxString& fullname = it->GetCanonicalWithRegion();
|
||||||
if ( fullname.BeforeFirst('_') == lang )
|
if ( fullname.BeforeFirst('_') == lang )
|
||||||
{
|
{
|
||||||
// We never have encoding in our canonical names, but we
|
// We never have encoding in our canonical names, but we
|
||||||
|
|||||||
Reference in New Issue
Block a user