handleLanguage function

String handleLanguage(
  1. String globalLang,
  2. String? preferredLang, [
  3. String? override
])

Handles language selection, in priority order:

  1. Explicit per-call override (e.g. passed to showProfile)
  2. Customer preferred language (preferredLang, set via CustomerAttributes)
  3. Global preferred language (globalLang, set during SDK init)
  4. "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();
}