app_locale_resolution.dart 1.38 KB
import 'package:flutter/widgets.dart';

Locale resolveAppLocale(
    Locale? deviceLocale, Iterable<Locale> supportedLocales) {
  // if (deviceLocale == null) return const Locale('en');
  //
  // for (final locale in supportedLocales) {
  //   if (locale == deviceLocale) {
  //     return locale;
  //   }
  // }
  //
  // if (deviceLocale.languageCode == 'zh') {
  //   final script = deviceLocale.scriptCode?.toLowerCase();
  //   final country = deviceLocale.countryCode?.toUpperCase();
  //   final isHant = script == 'hant' ||
  //       country == 'TW' ||
  //       country == 'HK' ||
  //       country == 'MO';
  //
  //   return supportedLocales.firstWhere(
  //     (locale) =>
  //         locale.languageCode == 'zh' &&
  //         locale.scriptCode == (isHant ? 'Hant' : 'Hans'),
  //     orElse: () => Locale.fromSubtags(
  //       languageCode: 'zh',
  //       scriptCode: isHant ? 'Hant' : 'Hans',
  //     ),
  //   );
  // }
  //
  // if (deviceLocale.countryCode != null) {
  //   for (final locale in supportedLocales) {
  //     if (locale.languageCode == deviceLocale.languageCode &&
  //         locale.countryCode == deviceLocale.countryCode) {
  //       return locale;
  //     }
  //   }
  // }
  //
  // for (final locale in supportedLocales) {
  //   if (locale.languageCode == deviceLocale.languageCode) {
  //     return locale;
  //   }
  // }

  return const Locale('en');
}