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