import 'dart:ui'; import 'package:get/get.dart'; import '../tools/app_manager.dart'; enum AppDept { starLock, } extension ExtensionAppDept on AppDept { static AppDept fromAppPackageName(String packageName) { AppDept dept = AppDept.starLock; packageName = packageName.toLowerCase(); if (packageName.contains('starLock')) { dept = AppDept.starLock; } return dept; } List get deptSupportedLocales { const Locale enL = Locale('en', 'US'); const Locale zhL = Locale('zh', 'CN'); const Locale twL = Locale('zh', 'TW'); const Locale frL = Locale('fr', 'FR'); const Locale ruL = Locale('ru', 'RU'); const Locale deL = Locale('de', 'DE'); const Locale jaL = Locale('ja', 'JP'); const Locale koL = Locale('ko', 'KR'); const Locale itL = Locale('it', 'IT'); const Locale ptL = Locale('pt', 'PT'); const Locale esL = Locale('es', 'ES'); const Locale arL = Locale('ar', 'SA'); const Locale viL = Locale('vi', 'VN'); const Locale msL = Locale('ms', 'MY'); const Locale nlL = Locale('nl', 'NL'); const Locale roL = Locale('ro', 'RO'); const Locale ltL = Locale('lt', 'LT'); const Locale svL = Locale('sv', 'SE'); const Locale etL = Locale('et', 'EE'); const Locale plL = Locale('pl', 'PL'); const Locale skL = Locale('sk', 'SK'); const Locale csL = Locale('cs', 'CZ'); const Locale elL = Locale('el', 'GR'); const Locale heL = Locale('he', 'IL'); const Locale trL = Locale('tr', 'TR'); const Locale huL = Locale('hu', 'HU'); const Locale bgL = Locale('bg', 'BG'); const Locale kkL = Locale('kk', 'KZ'); const Locale bnL = Locale('bn', 'BD'); const Locale hbsL = Locale('hr', 'BA'); const Locale thL = Locale('th', 'TH'); const Locale idL = Locale('id', 'ID'); const Locale fiL = Locale('fi', 'FI'); const Locale daL = Locale('da', 'DK'); const Locale ukL = Locale('uk', 'UA'); const Locale srCyrillic = Locale('sr', 'RS'); return [ enL, zhL, twL, frL, ruL, deL, jaL, koL, itL, ptL, esL, arL, viL, msL, nlL, roL, ltL, svL, etL, plL, skL, csL, elL, heL, trL, huL, bgL, kkL, bnL, hbsL, thL, idL, fiL, daL, ukL, srCyrillic ]; } } AppDept appDept = ExtensionAppDept.fromAppPackageName(AppManager().packageName); final List appSupportedLocales = appDept.deptSupportedLocales; enum LanguageType { chinese, english, // 繁体中文 traditionalChinese, // 法语 french, // 俄语 russian, // 德语 german, // 日语 japanese, // 韩语 korean, // 意大利语 italian, // 乌克兰语 // ukrainian, // 葡萄牙语 portuguese, // 西班牙语 spanish, // 阿拉伯语 arabic, // 越南语 vietnamese, // 马莱语 malay, // 荷兰语 dutch, // 罗马尼亚语 romanian, // 立陶宛语 lithuanian, // 瑞典语 swedish, // 爱沙尼亚语 estonian, // 波兰语 polish, // 斯洛伐克语 slovak, // 捷克语 czech, // 希腊语 greek, // 希伯来语 hebrew, // 塞尔维亚语(西里尔文) serbian, // 土耳其语 turkish, // 匈牙利语 hungarian, // 保加利亚语 bulgarian, // 哈萨克斯坦语 kazakh, // 孟加拉语 bengali, // 克罗地亚语 croatian, // 泰语 thai, // 印度尼西亚语 indonesian, // 芬兰语 finnish, // 丹麦语 danish, // 乌克兰语 ukrainian } extension ExtensionLanguageType on LanguageType { String get lanTitle { var str = ''; switch (this) { case LanguageType.english: str = '英文'.tr; break; case LanguageType.chinese: str = '简体中文'.tr; break; case LanguageType.traditionalChinese: str = '繁体中文'.tr; break; case LanguageType.french: str = '法语'.tr; break; case LanguageType.russian: str = '俄语'.tr; break; case LanguageType.german: str = '德语'.tr; break; case LanguageType.japanese: str = '日语'.tr; break; case LanguageType.korean: str = '韩语'.tr; break; case LanguageType.italian: str = '意大利语'.tr; break; case LanguageType.portuguese: str = '葡萄牙语'.tr; break; case LanguageType.spanish: str = '西班牙语'.tr; break; case LanguageType.arabic: str = '阿拉伯语'.tr; break; case LanguageType.vietnamese: str = '越南语'.tr; break; case LanguageType.malay: str = '马来语'.tr; break; case LanguageType.dutch: str = '荷兰语'.tr; break; case LanguageType.romanian: str = '罗马尼亚语'.tr; break; case LanguageType.lithuanian: str = '立陶宛语'.tr; break; case LanguageType.swedish: str = '瑞典语'.tr; break; case LanguageType.estonian: str = '爱沙尼亚语'.tr; break; case LanguageType.polish: str = '波兰语'.tr; break; case LanguageType.slovak: str = '斯洛伐克语'.tr; break; case LanguageType.czech: str = '捷克语'.tr; break; case LanguageType.greek: str = '希腊语'.tr; break; case LanguageType.hebrew: str = '希伯来语'.tr; break; case LanguageType.serbian: str = '塞尔维亚语'.tr; break; case LanguageType.turkish: str = '土耳其语'.tr; break; case LanguageType.hungarian: str = '匈牙利语'.tr; break; case LanguageType.bulgarian: str = '保加利亚语'.tr; break; case LanguageType.kazakh: str = '哈萨克斯坦语'.tr; break; case LanguageType.bengali: str = '孟加拉语'.tr; break; case LanguageType.croatian: str = '克罗地亚语'.tr; break; case LanguageType.thai: str = '泰语'.tr; break; case LanguageType.indonesian: str = '印度尼西亚语'.tr; break; case LanguageType.finnish: str = '芬兰语'.tr; break; case LanguageType.danish: str = '丹麦语'.tr; break; case LanguageType.ukrainian: str = '乌克兰语'.tr; break; } return str; } // static LanguageType fromLanguageCode(String code) { // LanguageType languageType = LanguageType.english; // switch(code.toLowerCase()){ // case 'en': // languageType = LanguageType.english; // break; // case 'zh': // languageType = LanguageType.chinese; // break; // case 'tw': // languageType = LanguageType.traditionalChinese; // break; // case 'fr': // languageType = LanguageType.french; // break; // case 'ru': // languageType = LanguageType.russian; // break; // case 'de': // languageType = LanguageType.german; // break; // case 'ja': // languageType = LanguageType.japanese; // break; // case 'ko': // languageType = LanguageType.korean; // break; // case 'it': // languageType = LanguageType.italian; // break; // // case 'uk': // // languageType = LanguageType.ukrainian; // // break; // case 'pt': // languageType = LanguageType.portuguese; // break; // case 'es': // languageType = LanguageType.spanish; // break; // case 'ar': // languageType = LanguageType.arabic; // break; // case 'vi': // languageType = LanguageType.vietnamese; // break; // case 'ms': // languageType = LanguageType.malay; // break; // case 'nl': // languageType = LanguageType.dutch; // break; // case 'ro': // languageType = LanguageType.romanian; // break; // case 'lt': // languageType = LanguageType.lithuanian; // break; // case 'sv': // languageType = LanguageType.swedish; // break; // case 'et': // languageType = LanguageType.estonian; // break; // case 'pl': // languageType = LanguageType.polish; // break; // case 'sk': // languageType = LanguageType.slovak; // break; // case 'cs': // languageType = LanguageType.czech; // break; // case 'el': // languageType = LanguageType.greek; // break; // case 'he': // languageType = LanguageType.hebrew; // break; // // case 'sr': // // languageType = LanguageType.serbian; // // break; // case 'tr': // languageType = LanguageType.turkish; // break; // case 'hu': // languageType = LanguageType.hungarian; // break; // case 'bg': // languageType = LanguageType.bulgarian; // break; // case 'kk': // languageType = LanguageType.kazakh; // break; // case 'bn': // languageType = LanguageType.bengali; // break; // case 'hr': // languageType = LanguageType.croatian; // break; // case 'th': // languageType = LanguageType.thai; // break; // case 'id': // languageType = LanguageType.indonesian; // break; // case 'fi': // languageType = LanguageType.finnish; // break; // case 'da': // languageType = LanguageType.danish; // break; // } // return languageType; // } static LanguageType fromLocale(Locale locale) { LanguageType languageType = LanguageType.english; final String code = locale.languageCode; final String countryCode = locale.countryCode ?? ''; switch (code.toLowerCase()) { case 'en': languageType = LanguageType.english; break; case 'zh': if (countryCode.toLowerCase() == 'cn') { languageType = LanguageType.chinese; } else { languageType = LanguageType.traditionalChinese; } break; case 'fr': languageType = LanguageType.french; break; case 'ru': languageType = LanguageType.russian; break; case 'de': languageType = LanguageType.german; break; case 'ja': languageType = LanguageType.japanese; break; case 'ko': languageType = LanguageType.korean; break; case 'it': languageType = LanguageType.italian; break; case 'pt': languageType = LanguageType.portuguese; break; case 'es': languageType = LanguageType.spanish; break; case 'ar': languageType = LanguageType.arabic; break; case 'vi': languageType = LanguageType.vietnamese; break; case 'ms': languageType = LanguageType.malay; break; case 'nl': languageType = LanguageType.dutch; break; case 'ro': languageType = LanguageType.romanian; break; case 'lt': languageType = LanguageType.lithuanian; break; case 'sv': languageType = LanguageType.swedish; break; case 'et': languageType = LanguageType.estonian; break; case 'pl': languageType = LanguageType.polish; break; case 'sk': languageType = LanguageType.slovak; break; case 'cs': languageType = LanguageType.czech; break; case 'el': languageType = LanguageType.greek; break; case 'he': languageType = LanguageType.hebrew; break; case 'sr': languageType = LanguageType.serbian; break; case 'tr': languageType = LanguageType.turkish; break; case 'hu': languageType = LanguageType.hungarian; break; case 'bg': languageType = LanguageType.bulgarian; break; case 'kk': languageType = LanguageType.kazakh; break; case 'bn': languageType = LanguageType.bengali; break; case 'hr': languageType = LanguageType.croatian; break; case 'th': languageType = LanguageType.thai; break; case 'id': languageType = LanguageType.indonesian; break; case 'fi': languageType = LanguageType.finnish; break; case 'da': languageType = LanguageType.danish; break; case 'uk': languageType = LanguageType.ukrainian; break; } return languageType; } }