handleLanguage function
Handles language selection, in priority order:
- Explicit per-call
override(e.g. passed to showProfile) - Customer preferred language (
preferredLang, set via CustomerAttributes) - Global preferred language (
globalLang, set during SDK init) - "en" if none of the above are valid
Returns the selected language.
Implementation
String handleLanguage(String globalLang, String? preferredLang, [String? override]) {
// Highest priority: explicit per-call override
if (!isNullOrEmpty(override) && override?.length == 2) {
return override!;
}
String? lang = preferredLang;
// If the preferred language is valid (not null, empty, or not 2 characters), use it.
if (isNullOrEmpty(lang) || lang?.length != 2) {
// If the global language is valid, use it, Otherwise, use 'en'.
lang = globalLang;
if (isNullOrEmpty(lang) || lang.length != 2) {
lang = "en";
}
}
return lang.toString();
}