Merge remote-tracking branch 'origin/develop' into develop_liyi
This commit is contained in:
commit
685591e652
@ -91,6 +91,8 @@ generate_git_tag:
|
||||
stage: generate_tag_or_version
|
||||
extends: .generate_tag_rule
|
||||
before_script:
|
||||
- bash pre_build.sh xhj
|
||||
- bash pre_build.sh sky
|
||||
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
||||
- echo "project_url:$project_url"
|
||||
- git remote set-url origin http://gitlab-ci-token:${GITLAB_ACCESS_TOKEN}@$project_url.git
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
04BFE7152D14105500A48EC9 /* InfoPlist_sky.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 04BFE7142D14105500A48EC9 /* InfoPlist_sky.xcstrings */; };
|
||||
04C1FC572D13F1A2000C959E /* InfoPlist.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 04C1FC562D13F1A2000C959E /* InfoPlist.xcstrings */; };
|
||||
04D0CC262D06CE570042EF10 /* launchImage_xhj.png in Resources */ = {isa = PBXBuildFile; fileRef = 82B657662C919BDF0079121C /* launchImage_xhj.png */; };
|
||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||
@ -99,6 +100,7 @@
|
||||
/* Begin PBXFileReference section */
|
||||
0420903B2C0EEAA50073E654 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; };
|
||||
04BFC4482BCFE05100688FCA /* RunnerRelease-xhj.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "RunnerRelease-xhj.entitlements"; sourceTree = "<group>"; };
|
||||
04BFE7142D14105500A48EC9 /* InfoPlist_sky.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = InfoPlist_sky.xcstrings; sourceTree = "<group>"; };
|
||||
04C1FC562D13F1A2000C959E /* InfoPlist.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = InfoPlist.xcstrings; sourceTree = "<group>"; };
|
||||
0BEB3ADCCEC961E2916B9004 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
0D02C18E16914A687A4A1AC2 /* devDebug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = devDebug.xcconfig; path = Flutter/devDebug.xcconfig; sourceTree = "<group>"; };
|
||||
@ -366,6 +368,7 @@
|
||||
82BD91212ADA72360018E523 /* CommonDefine.h */,
|
||||
76C3321F45DA6AE46ED83204 /* RunnerDebug-dev.entitlements */,
|
||||
16D90D130794DF74DA656999 /* RunnerRelease-sky.entitlements */,
|
||||
04BFE7142D14105500A48EC9 /* InfoPlist_sky.xcstrings */,
|
||||
);
|
||||
path = Runner;
|
||||
sourceTree = "<group>";
|
||||
@ -504,6 +507,7 @@
|
||||
805C745A7C79091E65665B96 /* devDebug.xcconfig in Resources */,
|
||||
E0B3E9EE2D04B36C00907A95 /* info_sky.plist in Resources */,
|
||||
D415555B0C61C5422202D037 /* devProfile.xcconfig in Resources */,
|
||||
04BFE7152D14105500A48EC9 /* InfoPlist_sky.xcstrings in Resources */,
|
||||
8A77CDE0EDBCACCE22C29A9E /* devRelease.xcconfig in Resources */,
|
||||
F0A7A6EF7D83CA92324D9C20 /* preDebug.xcconfig in Resources */,
|
||||
E0A496CF2CA30CEF00E376BB /* skyPreviewRelease.xcconfig in Resources */,
|
||||
@ -704,7 +708,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerRelease-sky.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = SF86QP26TZ;
|
||||
DEVELOPMENT_TEAM = NAQ5PL2DYC;
|
||||
INFOPLIST_FILE = Runner/info_sky.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
@ -1089,7 +1093,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = "Runner/RunnerDebug-dev.entitlements";
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = SF86QP26TZ;
|
||||
DEVELOPMENT_TEAM = NAQ5PL2DYC;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug-pre-xhj"
|
||||
buildConfiguration = "Debug-local"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug-pre-xhj"
|
||||
buildConfiguration = "Pre-release-sky"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
|
||||
@ -17,6 +17,126 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"CFBundleName" : {
|
||||
"comment" : "Bundle name",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "星锁-local"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSBluetoothAlwaysUsageDescription" : {
|
||||
"comment" : "Privacy - Bluetooth Always Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "The app uses bluetooth to find, connect and transfer data between different devices"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSBluetoothPeripheralUsageDescription" : {
|
||||
"comment" : "Privacy - Bluetooth Peripheral Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "The app uses bluetooth to find, connect and transfer data between different devices"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSCameraUsageDescription" : {
|
||||
"comment" : "Privacy - Camera Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用请求相机,以便于拍摄照片,用于头像上传及人脸认证"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSContactsUsageDescription" : {
|
||||
"comment" : "Privacy - Contacts Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "Reason we need access to the contact list"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSLocationAlwaysAndWhenInUseUsageDescription" : {
|
||||
"comment" : "Privacy - Location Always and When In Use Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用在前台和后台的时候可以搜到更新的位置信息"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSLocationAlwaysUsageDescription" : {
|
||||
"comment" : "Privacy - Location Always Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用在后台的时候可以搜到更新的位置信息"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSLocationWhenInUseUsageDescription" : {
|
||||
"comment" : "Privacy - Location When In Use Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用在前台的时候可以搜到更新的位置信息"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSMicrophoneUsageDescription" : {
|
||||
"comment" : "Privacy - Microphone Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用请求麦克风用来通话"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"NSPhotoLibraryUsageDescription" : {
|
||||
"comment" : "Privacy - Photo Library Usage Description",
|
||||
"extractionState" : "extracted_with_value",
|
||||
"localizations" : {
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "new",
|
||||
"value" : "应用请求相册用于头像上传"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
|
||||
23
ios/Runner/InfoPlist_sky.xcstrings
Normal file
23
ios/Runner/InfoPlist_sky.xcstrings
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"sourceLanguage" : "zh-Hans",
|
||||
"strings" : {
|
||||
"CFBundleDisplayName" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "TTLock Pro"
|
||||
}
|
||||
},
|
||||
"zh-Hans" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "锁通通"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"version" : "1.0"
|
||||
}
|
||||
@ -7,7 +7,7 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>$(BUNDLE_DISPLAY_NAME)</string>
|
||||
<string>$(BUNDLE_NAME)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>$(BUNDLE_DISPLAY_NAME)</string>
|
||||
<string>$(BUNDLE_NAME)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "اتبع النظام"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Следете система"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "এক্ফক্লোসিস্টেম"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Sledovat systém"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Følg systemet"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "System folgen"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Ακολουθήστε το σύστημα"
|
||||
}
|
||||
@ -1121,5 +1121,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Follow system"
|
||||
}
|
||||
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Seguir sistema"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Süsteemi jälgimine"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Seuraa järjestelmää"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Suivre le système"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "מערכת מעקב"
|
||||
}
|
||||
@ -1046,39 +1046,39 @@
|
||||
"英文": "英语",
|
||||
"简体中文": "简体中文",
|
||||
"繁体中文": "繁體中文",
|
||||
"法语": "法语",
|
||||
"法语": "Français",
|
||||
"俄语": "Русский",
|
||||
"德语": "多伊奇",
|
||||
"德语": "Deutsch",
|
||||
"日语": "日本語",
|
||||
"韩语": "嘻嘻哈哈",
|
||||
"意大利语": "意大利语",
|
||||
"韩语": "한국어",
|
||||
"意大利语": "Italiano",
|
||||
"乌克兰语": "Українська",
|
||||
"葡萄牙语": "葡萄牙商业银行",
|
||||
"西班牙语": "西班牙语",
|
||||
"葡萄牙语": "Português",
|
||||
"西班牙语": "Español",
|
||||
"阿拉伯语": "العربية",
|
||||
"越南语": "Tiếng Việt",
|
||||
"马来语": "马来语",
|
||||
"荷兰语": "荷兰语",
|
||||
"罗马尼亚语": "罗马ă",
|
||||
"马来语": "Bahasa Melayu",
|
||||
"荷兰语": "Nederlands",
|
||||
"罗马尼亚语": "Română",
|
||||
"立陶宛语": "Lietuvių",
|
||||
"瑞典语": "瑞典语",
|
||||
"瑞典语": "Svenska",
|
||||
"爱沙尼亚语": "Eesti",
|
||||
"波兰语": "波兰语",
|
||||
"斯洛伐克语": "懒散的人č艾娜",
|
||||
"捷克语": "Češ蒂娜",
|
||||
"波兰语": "Polski",
|
||||
"斯洛伐克语": "Slovenčina",
|
||||
"捷克语": "Čeština",
|
||||
"希腊语": "Ελληνικά",
|
||||
"希伯来语": "עברית",
|
||||
"塞尔维亚语": "Српски",
|
||||
"土耳其语": "Turkce",
|
||||
"匈牙利语": "马札尔人的",
|
||||
"匈牙利语": "Magyar",
|
||||
"保加利亚语": "Български",
|
||||
"哈萨克斯坦语": "Қазақ",
|
||||
"孟加拉语": "বাংলা",
|
||||
"克罗地亚语": "Hrvatski",
|
||||
"泰语": "ไทย",
|
||||
"印度尼西亚语": "印度尼西亚语",
|
||||
"芬兰语": "芬兰语",
|
||||
"丹麦语": "丹麦语",
|
||||
"印度尼西亚语": "Bahasa Indonesia",
|
||||
"芬兰语": "Suomi",
|
||||
"丹麦语": "Dansk",
|
||||
"重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,锁上的掌骨静脉会被删除。你确定要重置吗?",
|
||||
"在线": "在线",
|
||||
"离线": "离线",
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "跟踪系统"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Prati sistem:"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Follow system"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Sistem mengikuti"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Seguire il sistema"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "システムに従う"
|
||||
}
|
||||
@ -1121,5 +1121,6 @@
|
||||
"月简称": "月简称",
|
||||
"日简称": "日简称",
|
||||
"时简称": "时简称",
|
||||
"分简称": "分简称"
|
||||
"分简称": "分简称",
|
||||
"跟随系统": "跟随系统"
|
||||
}
|
||||
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Жүйені қолдану"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "시스템을 따르십시오"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Sekti sistema"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Ikut system"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Systeem volgen"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Śledź system"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Siga o sistema"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Urmează sistemul:"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Следуйте системе"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Sledovať systém"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Пратите систем"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Följ system"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "ระบบติดตามผล"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Sistemi takip et"
|
||||
}
|
||||
@ -1118,6 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
|
||||
"分简称": "M",
|
||||
"跟随系统": "跟蹤系統"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Система стеження за"
|
||||
}
|
||||
@ -1118,5 +1118,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "Hệ thống theo dõi"
|
||||
}
|
||||
@ -1122,5 +1122,6 @@
|
||||
"月简称": "M",
|
||||
"日简称": "D",
|
||||
"时简称": "H",
|
||||
"分简称": "M"
|
||||
"分简称": "M",
|
||||
"跟随系统": "跟随系统"
|
||||
}
|
||||
|
||||
45
lib/app.dart
45
lib/app.dart
@ -33,9 +33,14 @@ class MyApp extends StatefulWidget {
|
||||
class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ScreenUtilInit(
|
||||
designSize: const Size(585, 1265),
|
||||
builder: (BuildContext w, Widget? a) => _initMaterialApp());
|
||||
return FutureBuilder(
|
||||
future: Get.updateLocale(CurrentLocaleTool.getCurrentLocale()),
|
||||
builder: (BuildContext context, AsyncSnapshot snapshot) {
|
||||
return ScreenUtilInit(
|
||||
designSize: const Size(585, 1265),
|
||||
builder: (BuildContext w, Widget? a) => _initMaterialApp());
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
GetMaterialApp _initMaterialApp() {
|
||||
@ -60,23 +65,23 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
// localeResolutionCallback用于在启动时动态确定应该使用哪种语言和地区。
|
||||
localeResolutionCallback:
|
||||
(Locale? locale, Iterable<Locale> supportedLocales) {
|
||||
AppLog.log(
|
||||
'System device locale: ${Get.deviceLocale} locale:$locale');
|
||||
// if (widget.isLogin) {
|
||||
// 登录之后调用存储的语言
|
||||
locale = CurrentLocaleTool.getCurrentLocale();
|
||||
// } else {
|
||||
// // 没登录之前调用系统的语言
|
||||
// locale = Get.deviceLocale;
|
||||
// }
|
||||
locale = CurrentLocaleTool.convertLocale(locale);
|
||||
AppLog.log('localeResolutionCallback locale: $locale');
|
||||
AppManager()
|
||||
.setLanCode(code: '${locale.languageCode}_${locale.countryCode}');
|
||||
return Locale(locale.languageCode, locale.countryCode);
|
||||
},
|
||||
// localeResolutionCallback:
|
||||
// (Locale? locale, Iterable<Locale> supportedLocales) {
|
||||
// AppLog.log(
|
||||
// 'System device locale: ${Get.deviceLocale} locale:$locale');
|
||||
// // if (widget.isLogin) {
|
||||
// // 登录之后调用存储的语言
|
||||
// locale = CurrentLocaleTool.getCurrentLocale();
|
||||
// // } else {
|
||||
// // // 没登录之前调用系统的语言
|
||||
// // locale = Get.deviceLocale;
|
||||
// // }
|
||||
// locale = CurrentLocaleTool.convertLocale(locale);
|
||||
// AppLog.log('localeResolutionCallback locale: $locale');
|
||||
// AppManager()
|
||||
// .setLanCode(code: '${locale.languageCode}_${locale.countryCode}');
|
||||
// return Locale(locale.languageCode, locale.countryCode);
|
||||
// },
|
||||
// 用来指定应用当前使用的语言和地区。它定义了应用在启动时加载的默认语言环境。
|
||||
locale: CurrentLocaleTool.getCurrentLocale(),
|
||||
// locale: Get.deviceLocale,
|
||||
|
||||
@ -213,9 +213,7 @@ class BlueManage {
|
||||
message: '指定设备名称的扫描蓝牙设备 监听扫描结果失败',
|
||||
detail: '打印失败问题 e:${e.toString()}',
|
||||
upload: false);
|
||||
AppLog.log(
|
||||
'扫描失败:$e',
|
||||
);
|
||||
AppLog.log('扫描失败:$e');
|
||||
});
|
||||
FlutterBluePlus.cancelWhenScanComplete(subscription);
|
||||
await completer.future;
|
||||
|
||||
@ -32,6 +32,7 @@ class LockMainXHJLogic extends BaseGetXController {
|
||||
final String languageCodeAndCountryCode = entity.data!.lang!;
|
||||
if (languageCodeAndCountryCode.isEmpty) {
|
||||
await StoreService.to.saveLanguageCode('');
|
||||
await Get.updateLocale(Get.deviceLocale!);
|
||||
} else if (languageCodeAndCountryCode.contains('-')) {
|
||||
final List<String> parts = languageCodeAndCountryCode.split('-');
|
||||
final Locale locale = Locale(parts[0], parts[1]);
|
||||
|
||||
@ -4,7 +4,7 @@ import 'flavors.dart';
|
||||
import 'main.dart' as runner;
|
||||
|
||||
Future<void> main() async {
|
||||
F.appFlavor = Flavor.local;
|
||||
F.appFlavor = Flavor.sky;
|
||||
// AppLog.log('local调用了main函数');
|
||||
await runner.main();
|
||||
}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
class GatewayConnectionLockListEntity {
|
||||
|
||||
GatewayConnectionLockListEntity(
|
||||
{this.errorCode, this.description, this.errorMsg, this.data});
|
||||
|
||||
@ -27,7 +26,6 @@ class GatewayConnectionLockListEntity {
|
||||
}
|
||||
|
||||
class Data {
|
||||
|
||||
Data({this.list, this.total, this.pageNo, this.pageSize});
|
||||
|
||||
Data.fromJson(Map<String, dynamic> json) {
|
||||
@ -59,23 +57,23 @@ class Data {
|
||||
}
|
||||
|
||||
class GatewayConnectionLockItemEntity {
|
||||
|
||||
GatewayConnectionLockItemEntity({this.lockId, this.lockAlias, this.rssi});
|
||||
GatewayConnectionLockItemEntity(
|
||||
{this.lockId, this.lockAlias, this.gatewayRssi});
|
||||
|
||||
GatewayConnectionLockItemEntity.fromJson(Map<String, dynamic> json) {
|
||||
lockId = json['lockId'];
|
||||
lockAlias = json['lockAlias'];
|
||||
rssi = json['rssi'];
|
||||
gatewayRssi = json['gatewayRssi'];
|
||||
}
|
||||
int? lockId;
|
||||
String? lockAlias;
|
||||
int? rssi;
|
||||
int? gatewayRssi;
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['lockId'] = lockId;
|
||||
data['lockAlias'] = lockAlias;
|
||||
data['rssi'] = rssi;
|
||||
data['gatewayRssi'] = gatewayRssi;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ class _GatewayConnectionLockListPageState
|
||||
return _gatewayConnectionLockListItem(
|
||||
'images/mine/icon_mine_gatewaySignal_prompt.png',
|
||||
entity.lockAlias ?? '',
|
||||
'信号强'.tr, () {
|
||||
entity.gatewayRssi.toString(), () {
|
||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||
});
|
||||
})
|
||||
|
||||
@ -15,22 +15,27 @@ class MineMultiLanguageLogic extends GetxController {
|
||||
|
||||
//更新个人信息
|
||||
Future<void> updateUserLangInfo(Locale l) async {
|
||||
// AppLog.log('lanTypeTitle: $lanTypeTitle');
|
||||
AppLog.log('selet: ${l.toString()}}');
|
||||
String lang = l.toString();
|
||||
if (state.currentLanguageType.value == LanguageType.system) {
|
||||
lang = '';
|
||||
}
|
||||
String currentLanguage = StoreService.to.getLanguageCode()!;
|
||||
await StoreService.to.saveLanguageCode(lang);
|
||||
final PasswordKeyListEntity entity =
|
||||
await ApiRepository.to.updateUserLangInfo(lang: lang);
|
||||
if (entity.errorCode!.codeIsSuccessful) {
|
||||
await changeLanguage(l);
|
||||
await Get.updateLocale(l);
|
||||
AppLog.log('saveLocale: ${l.toString()}}');
|
||||
eventBus.fire(ChangeLanguageBlockLastLanguageEvent());
|
||||
} else {
|
||||
await StoreService.to.saveLanguageCode(currentLanguage);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> changeLanguage(Locale l) async {
|
||||
await Get.updateLocale(l);
|
||||
await StoreService.to.saveLanguageCode(
|
||||
CurrentLocaleTool.convertLocale(Get.locale!).toString());
|
||||
}
|
||||
// Future<void> changeLanguage(Locale l) async {
|
||||
// await StoreService.to.saveLanguageCode(l.toString());
|
||||
// await Get.updateLocale(l);
|
||||
// AppLog.log('saveLocale: ${l.toString()}}');
|
||||
// }
|
||||
}
|
||||
|
||||
@ -36,7 +36,8 @@ class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
||||
final String lanTypeTitle =
|
||||
ExtensionLanguageType.fromLocale(state.seletLocale)
|
||||
.lanTitle;
|
||||
Get.back(result: {'currentLanguage': lanTypeTitle});
|
||||
Get.back(
|
||||
result: {'currentLanguage': state.seletLocale.toString()});
|
||||
},
|
||||
child: Text(
|
||||
'保存'.tr,
|
||||
@ -59,7 +60,7 @@ class _MineMultiLanguagePageState extends State<MineMultiLanguagePage> {
|
||||
final List<Widget> l = <Widget>[];
|
||||
l.add(
|
||||
CommonItem(
|
||||
leftTitel: '跟随系统',
|
||||
leftTitel: '跟随系统'.tr,
|
||||
rightTitle: '',
|
||||
isHaveLine: true,
|
||||
isHaveDirection: false,
|
||||
|
||||
@ -15,7 +15,9 @@ class MineMultiLanguageState {
|
||||
}
|
||||
|
||||
Rx<LanguageType> currentLanguageType =
|
||||
ExtensionLanguageType.fromLocale(Get.locale!).obs;
|
||||
StoreService.to.getLanguageCode()!.isEmpty
|
||||
? LanguageType.system.obs
|
||||
: ExtensionLanguageType.fromLocale(Get.locale!).obs;
|
||||
|
||||
late Locale seletLocale;
|
||||
}
|
||||
|
||||
@ -2,17 +2,14 @@ import 'dart:io';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get/get_state_manager/get_state_manager.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/flavors.dart';
|
||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart';
|
||||
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
|
||||
import 'package:star_lock/tools/langue/langue_tool.dart';
|
||||
import 'package:star_lock/tools/wechat/customer_tool.dart';
|
||||
import '../../../appRouters.dart';
|
||||
import '../../../app_settings/app_colors.dart';
|
||||
@ -22,7 +19,8 @@ import '../../../tools/submitBtn.dart';
|
||||
import '../../../tools/titleAppBar.dart';
|
||||
import '../../../tools/wechat/wechatManageTool.dart';
|
||||
import '../../../tools/wechat/wx_push_miniProgram/wx_push_miniProgram.dart';
|
||||
import '../../../translations/trans_lib.dart';
|
||||
import '../../../translations/app_dept.dart';
|
||||
import '../../../translations/current_locale_tool.dart';
|
||||
|
||||
class MineSetPage extends StatefulWidget {
|
||||
MineSetPage({Key? key, this.showAppBar = true, this.showAbout = false})
|
||||
@ -303,10 +301,10 @@ class _MineSetPageState extends State<MineSetPage>
|
||||
isHaveDirection: true,
|
||||
action: () async {
|
||||
// Get.toNamed(Routers.mineMultiLanguagePage);
|
||||
await Get.toNamed(Routers.mineMultiLanguagePage)!.then(
|
||||
(value) => {
|
||||
state.currentLanguage.value = value['currentLanguage']
|
||||
});
|
||||
await Get.toNamed(Routers.mineMultiLanguagePage)!.then((value) {
|
||||
state.currentLanguage.value = value['currentLanguage'];
|
||||
setState(() {});
|
||||
});
|
||||
});
|
||||
}),
|
||||
/* 2024-01-12 会议确定去掉“锁屏” by DaisyWu
|
||||
@ -516,11 +514,23 @@ class _MineSetPageState extends State<MineSetPage>
|
||||
Expanded(
|
||||
child: Text(leftTitle!, style: TextStyle(fontSize: 22.sp))),
|
||||
SizedBox(width: 10.w),
|
||||
Image.asset(
|
||||
'images/icon_right_grey.png',
|
||||
width: 12.w,
|
||||
height: 21.w,
|
||||
),
|
||||
if (CurrentLocaleTool.getCurrentLocaleString() ==
|
||||
ExtensionLanguageType.fromLanguageType(LanguageType.hebrew)
|
||||
.toString() ||
|
||||
CurrentLocaleTool.getCurrentLocaleString() ==
|
||||
ExtensionLanguageType.fromLanguageType(LanguageType.arabic)
|
||||
.toString())
|
||||
Image.asset(
|
||||
'images/icon_left_grey.png',
|
||||
width: 21.w,
|
||||
height: 21.w,
|
||||
)
|
||||
else
|
||||
Image.asset(
|
||||
'images/icon_right_grey.png',
|
||||
width: 12.w,
|
||||
height: 21.w,
|
||||
),
|
||||
SizedBox(width: 5.w),
|
||||
],
|
||||
),
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:star_lock/app_settings/app_settings.dart';
|
||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart';
|
||||
import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart';
|
||||
|
||||
import '../../../tools/store_service.dart';
|
||||
import '../../../translations/app_dept.dart';
|
||||
import '../../../translations/current_locale_tool.dart';
|
||||
|
||||
@ -24,10 +26,14 @@ class MineSetState {
|
||||
|
||||
/// 获取翻译后的国家名称
|
||||
String get currentLanguageName {
|
||||
return ExtensionLanguageType.fromLocale(
|
||||
CurrentLocaleTool.getCurrentLocaleWithLanguageCode(
|
||||
currentLanguage.value))
|
||||
.lanTitle;
|
||||
AppLog.log(
|
||||
'currentLanguage.value:${currentLanguage.value} fsgdsgddfg:${CurrentLocaleTool.getCurrentLocaleWithLanguageCode(currentLanguage.value)}');
|
||||
return StoreService.to.getLanguageCode()!.isEmpty
|
||||
? '跟随系统'.tr
|
||||
: ExtensionLanguageType.fromLocale(CurrentLocaleTool.convertLocale(
|
||||
CurrentLocaleTool.getCurrentLocaleWithLanguageCode(
|
||||
currentLanguage.value)))
|
||||
.lanTitle;
|
||||
}
|
||||
|
||||
RxBool isAmazonAlexa = false.obs; //亚马逊Alexa
|
||||
|
||||
@ -93,13 +93,11 @@ class CommonItem extends StatelessWidget {
|
||||
if (CurrentLocaleTool.getCurrentLocaleString() ==
|
||||
ExtensionLanguageType.fromLanguageType(
|
||||
LanguageType.hebrew)
|
||||
.toLanguageTag() ||
|
||||
.toString() ||
|
||||
CurrentLocaleTool.getCurrentLocaleString() ==
|
||||
ExtensionLanguageType.fromLanguageType(
|
||||
LanguageType.arabic)
|
||||
.toLanguageTag() ||
|
||||
rightTitle == '希伯来语'.tr ||
|
||||
rightTitle == '阿拉伯语'.tr)
|
||||
.toString())
|
||||
Image.asset(
|
||||
'images/icon_left_grey.png',
|
||||
width: 21.w,
|
||||
|
||||
@ -8,8 +8,6 @@ import 'app_dept.dart';
|
||||
class CurrentLocaleTool {
|
||||
/// 获取当前语言的Locale字符串,没有的话获取系统的
|
||||
static String getCurrentLocaleString() {
|
||||
AppLog.log(
|
||||
'11111StoreService.to.getLanguageCode():${StoreService.to.getLanguageCode()}');
|
||||
final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty
|
||||
? appDept.deptSupportedLocales
|
||||
.where((Locale element) =>
|
||||
@ -21,14 +19,12 @@ class CurrentLocaleTool {
|
||||
: Get.deviceLocale!; // Get.deviceLocale;
|
||||
final String languageCode = convertLocale(locale).toString();
|
||||
AppLog.log(
|
||||
'11111locale.toString(): ${locale.toString()} locale: $locale languageCode:$languageCode');
|
||||
'11111locale.toString(): ${locale.toString()} locale: $locale languageCode:$languageCode 从本地获取code:${StoreService.to.getLanguageCode()}');
|
||||
return languageCode;
|
||||
}
|
||||
|
||||
/// 获取当前储存的Locale,没有的话获取系统的
|
||||
static Locale getCurrentLocale() {
|
||||
AppLog.log(
|
||||
'222StoreService.to.getLanguageCode():${StoreService.to.getLanguageCode()}');
|
||||
final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty
|
||||
? appDept.deptSupportedLocales
|
||||
.where((Locale element) =>
|
||||
@ -40,7 +36,7 @@ class CurrentLocaleTool {
|
||||
: Get.deviceLocale!; // Get.deviceLocale;
|
||||
final Locale getLocale = convertLocale(locale);
|
||||
AppLog.log(
|
||||
'222locale.toString(): ${locale.toString()} locale: $locale getLocale:$getLocale');
|
||||
'222locale.toString(): ${locale.toString()} locale: $locale getLocale:$getLocale 从本地获取code:${StoreService.to.getLanguageCode()}');
|
||||
return getLocale;
|
||||
}
|
||||
|
||||
@ -55,23 +51,95 @@ class CurrentLocaleTool {
|
||||
}
|
||||
}
|
||||
|
||||
return const Locale('en', 'US');
|
||||
return Get.deviceLocale!;
|
||||
}
|
||||
|
||||
/// 国际化中文繁体及中文的转化
|
||||
static Locale convertLocale(Locale locale) {
|
||||
if (locale.languageCode == 'zh') {
|
||||
if (locale.scriptCode == 'Hans') {
|
||||
// 简体中文
|
||||
return const Locale('zh', 'CN');
|
||||
} else if (locale.scriptCode == 'Hant') {
|
||||
// 繁体中文
|
||||
if (locale.countryCode == 'CN') {
|
||||
return const Locale('zh', 'TW');
|
||||
} else if (locale.countryCode == 'HK') {
|
||||
return const Locale('zh', 'HK');
|
||||
switch (locale.languageCode) {
|
||||
case 'zh':
|
||||
if (locale.scriptCode == 'Hans') {
|
||||
// 简体中文
|
||||
return const Locale('zh', 'CN');
|
||||
} else if (locale.scriptCode == 'Hant') {
|
||||
// 繁体中文
|
||||
if (locale.countryCode == 'CN') {
|
||||
return const Locale('zh', 'TW');
|
||||
} else if (locale.countryCode == 'HK') {
|
||||
return const Locale('zh', 'HK');
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'en':
|
||||
return const Locale('en', 'US');
|
||||
case 'fr':
|
||||
return const Locale('fr', 'FR');
|
||||
case 'ru':
|
||||
return const Locale('ru', 'RU');
|
||||
case 'de':
|
||||
return const Locale('de', 'DE');
|
||||
case 'ja':
|
||||
return const Locale('ja', 'JP');
|
||||
case 'ko':
|
||||
return const Locale('ko', 'KR');
|
||||
case 'it':
|
||||
return const Locale('it', 'IT');
|
||||
case 'uk':
|
||||
return const Locale('uk', 'UA');
|
||||
case 'pt':
|
||||
return const Locale('pt', 'PT');
|
||||
case 'es':
|
||||
return const Locale('es', 'ES');
|
||||
case 'ar':
|
||||
return const Locale('ar', 'SA');
|
||||
case 'vi':
|
||||
return const Locale('vi', 'VN');
|
||||
case 'ms':
|
||||
return const Locale('ms', 'MY');
|
||||
case 'nl':
|
||||
return const Locale('nl', 'NL');
|
||||
case 'ro':
|
||||
return const Locale('ro', 'RO');
|
||||
case 'lt':
|
||||
return const Locale('lt', 'LT');
|
||||
case 'sv':
|
||||
return const Locale('sv', 'SE');
|
||||
case 'et':
|
||||
return const Locale('et', 'EE');
|
||||
case 'pl':
|
||||
return const Locale('pl', 'PL');
|
||||
case 'sk':
|
||||
return const Locale('sk', 'SK');
|
||||
case 'cs':
|
||||
return const Locale('cs', 'CZ');
|
||||
case 'el':
|
||||
return const Locale('el', 'GR');
|
||||
case 'he':
|
||||
return const Locale('he', 'IL');
|
||||
case 'sr':
|
||||
return const Locale('sr', 'RS');
|
||||
case 'tr':
|
||||
return const Locale('tr', 'TR');
|
||||
case 'hu':
|
||||
return const Locale('hu', 'HU');
|
||||
case 'bg':
|
||||
return const Locale('bg', 'BG');
|
||||
case 'kk':
|
||||
return const Locale('kk', 'KZ');
|
||||
case 'bn':
|
||||
return const Locale('bn', 'BD');
|
||||
case 'hr':
|
||||
return const Locale('hr', 'BA');
|
||||
case 'th':
|
||||
return const Locale('th', 'TH');
|
||||
case 'id':
|
||||
return const Locale('id', 'ID');
|
||||
case 'fi':
|
||||
return const Locale('fi', 'FI');
|
||||
case 'da':
|
||||
return const Locale('da', 'DK');
|
||||
default:
|
||||
return locale;
|
||||
}
|
||||
// 默认返回 Locale 的完整格式
|
||||
return locale;
|
||||
|
||||
@ -6,7 +6,7 @@ class TranslationMessage extends Translations {
|
||||
'zh_CN': TranslationLoader.zhDic,
|
||||
'en_US': TranslationLoader.enDic,
|
||||
'zh_TW': TranslationLoader.twDic,
|
||||
'hk_HK': TranslationLoader.hkDic,
|
||||
'zh_HK': TranslationLoader.hkDic,
|
||||
'fr_FR': TranslationLoader.frDic,
|
||||
'ru_RU': TranslationLoader.ruDic,
|
||||
'de_DE': TranslationLoader.deDic,
|
||||
|
||||
@ -105,6 +105,6 @@ echo -e "\n* 没有发现废弃 API,开始编译"
|
||||
|
||||
# 编译命令
|
||||
#flutter clean && flutter pub get
|
||||
flutter build apk --flavor $environment -t $main_file
|
||||
#flutter build apk --flavor $environment -t $main_file
|
||||
#flutter build ios --flavor $environment -t $main_file
|
||||
#flutter build appbundle --flavor $environment -t $main_file
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user