public static Locale fromStr(string s, bool check)
{
int len = s.Length;
try
{
if (len == 2)
{
if (FanStr.isLower(s))
{
return(new Locale(s, s, null));
}
}
if (len == 5)
{
string lang = s.Substring(0, 2);
string country = s.Substring(3, 2);
if (FanStr.isLower(lang) && FanStr.isUpper(country) && s[2] == '-')
{
return(new Locale(s, lang, country));
}
}
}
catch (Exception e)
{
Err.dumpStack(e);
}
if (!check)
{
return(null);
}
throw ParseErr.make("Locale", s).val;
}