callLocale method

  1. @override
UINode? callLocale(
  1. UINode? target,
  2. List<String> parameters,
  3. DOMContext? context
)

Implementation

@override
UINode? callLocale(
    UINode? target, List<String> parameters, DOMContext? context) {
  var variables = context?.variables ?? {};
  var event = (variables['event'] as Map?) ?? {};
  var locale = event['value'] ?? '';

  if (locale != null) {
    var localeStr = '$locale'.trim().toLowerCase();

    if (localeStr.isNotEmpty) {
      var uiRoot = UIRoot.getInstance();

      if (uiRoot != null) {
        var currentLocale = UIRoot.getCurrentLocale();

        if (currentLocale != localeStr) {
          uiRoot.setPreferredLocale(localeStr).then((ok) {
            uiRoot.refresh();
          });
        }
      }
    }
  }

  return target;
}