Add wxUILocale::FromTag() helper

This is exactly the same as wxUILocale(wxLocaleIdent::FromTag()) but
shorter.
This commit is contained in:
Vadim Zeitlin
2021-09-05 00:59:28 +02:00
parent c217eb6815
commit 2c580c9190
3 changed files with 24 additions and 6 deletions

View File

@@ -106,6 +106,12 @@ public:
// Get the object corresponding to the currently used locale.
static const wxUILocale& GetCurrent();
// A helper just to avoid writing wxUILocale(wxLocaleIdent::FromTag(...)).
static wxUILocale FromTag(const wxString& tag)
{
return wxUILocale(wxLocaleIdent::FromTag(tag));
}
// Create the object corresponding to the given locale.
explicit wxUILocale(const wxLocaleIdent& localeId);

View File

@@ -99,6 +99,18 @@ public:
*/
static const wxUILocale& GetCurrent();
/**
Creates the local corresponding to the given language tag.
This is exactly equivalent to using wxUILocale constructor with
the locale identifier returned by wxLocaleIdent::FromTag(), but
shorter.
See wxLocaleIdent::FromTag() for more information about the syntax of
the @a tag string.
*/
static wxUILocale FromTag(const wxString& tag);
/**
Creates the locale corresponding to the given locale identifier.

View File

@@ -260,16 +260,16 @@ static inline bool CheckSupported(const wxUILocale& loc, const char* desc)
TEST_CASE("wxUILocale::IsSupported", "[uilocale]")
{
CheckSupported(wxUILocale(wxLocaleIdent::FromTag("en")), "English");
CheckSupported(wxUILocale::FromTag("en"), "English");
CheckSupported(wxUILocale(wxLocaleIdent().Language("fr").Region("FR")), "French");
CHECK( !wxUILocale(wxLocaleIdent::FromTag("bloordyblop")).IsSupported() );
CHECK( !wxUILocale::FromTag("bloordyblop").IsSupported() );
}
TEST_CASE("wxUILocale::GetInfo", "[uilocale]")
{
CHECK( wxUILocale(wxLocaleIdent::FromTag("en")).GetInfo(wxLOCALE_DECIMAL_POINT) == "." );
CHECK( wxUILocale::FromTag("en").GetInfo(wxLOCALE_DECIMAL_POINT) == "." );
const wxUILocale locDE(wxLocaleIdent::FromTag("de"));
const wxUILocale locDE(wxUILocale::FromTag("de"));
if ( CheckSupported(locDE, "German") )
CHECK( locDE.GetInfo(wxLOCALE_DECIMAL_POINT) == "," );
@@ -288,7 +288,7 @@ TEST_CASE("wxUILocale::CompareStrings", "[uilocale]")
{
SECTION("English")
{
const wxUILocale l(wxLocaleIdent::FromTag("en"));
const wxUILocale l(wxUILocale::FromTag("en"));
// This is not very interesting, but check that comparison works at all.
CHECK( l.CompareStrings("x", "x") == 0 );
@@ -344,7 +344,7 @@ TEST_CASE("wxUILocale::CompareStrings", "[uilocale]")
if ( wxIsRunningUnderWine() )
return;
const wxUILocale l(wxLocaleIdent::FromTag("sv"));
const wxUILocale l(wxUILocale::FromTag("sv"));
if ( !CheckSupported(l, "Swedish") )
return;