app-starlock/lib/translations/app_dept.dart
2024-11-21 10:14:52 +08:00

527 lines
13 KiB
Dart
Executable File

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<Locale> 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<Locale> 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;
}
}