pickLocale function

HatangLocale pickLocale({
  1. String? preferred,
  2. String siteDefault = 'auto',
  3. String? deviceLanguage,
})

Locale resolution (same rule as the web widget and the agent app): explicit preferred → site default unless auto → device language starting with en → English, everything else Vietnamese.

Implementation

HatangLocale pickLocale({String? preferred, String siteDefault = 'auto', String? deviceLanguage}) {
  final p = HatangLocale.tryParse(preferred);
  if (p != null) return p;
  final s = HatangLocale.tryParse(siteDefault);
  if (s != null) return s;
  return (deviceLanguage ?? '').toLowerCase().startsWith('en') ? HatangLocale.en : HatangLocale.vi;
}