selectLocale static method
Implementation
static TDeskAppLocale? selectLocale(String localeRaw) {
final match = _localeRegex.firstMatch(localeRaw);
TDeskAppLocale? selected;
if (match != null) {
final language = match.group(1);
final country = match.group(5);
final script = match.group(3);
// match exactly
selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
(supported) =>
supported?.languageTag == localeRaw.replaceAll('_', '-'),
orElse: () => null);
if (selected == null && script != null) {
// match script
selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
(supported) => supported?.languageTag.contains(script) == true,
orElse: () => null);
}
if (selected == null && language != null) {
// match language
selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
(supported) => supported?.languageTag.startsWith(language) == true,
orElse: () => null);
}
if (selected == null && country != null) {
// match country
selected = TDeskAppLocale.values.cast<TDeskAppLocale?>().firstWhere(
(supported) => supported?.languageTag.contains(country) == true,
orElse: () => null);
}
}
return selected;
}