添加印度尼西亚

This commit is contained in:
2026-03-03 15:52:37 +08:00
parent 211f30d793
commit bcc8981c06
5 changed files with 83 additions and 79 deletions

View File

@@ -452,7 +452,7 @@
"insetLeft": 4, "insetLeft": 4,
"insetRight": 4, "insetRight": 4,
"gap": 5, "gap": 5,
"items": ["sym:-", "sym:/", "sym::", "sym:;", "sym:(", "sym:)", "sym:Rp", "sym:&", "sym:@", "sym:\""] "items": ["sym:-", "sym:/", "sym::", "sym:;", "sym:(", "sym:)", "sym:", "sym:&", "sym:@", "sym:\""]
}, },
{ {
"align": "center", "align": "center",
@@ -496,7 +496,7 @@
"insetLeft": 4, "insetLeft": 4,
"insetRight": 4, "insetRight": 4,
"gap": 5, "gap": 5,
"items": ["sym:_", "sym:\\", "sym:|", "sym:~", "sym:<", "sym:>", "sym:Rp", "sym:$", "sym:€", "sym:·"] "items": ["sym:_", "sym:\\", "sym:|", "sym:~", "sym:<", "sym:>", "sym:$", "sym:€", "sym:£", "sym:·"]
}, },
{ {
"align": "center", "align": "center",

View File

@@ -742,17 +742,15 @@ static NSString * const kKBSkinMetadataThemeKey = @"theme_json";
NSString *skinsRoot = [baseRoot stringByAppendingPathComponent:@"Skins"]; NSString *skinsRoot = [baseRoot stringByAppendingPathComponent:@"Skins"];
NSString *skinRoot = [skinsRoot stringByAppendingPathComponent:skinId]; NSString *skinRoot = [skinsRoot stringByAppendingPathComponent:skinId];
NSString *iconsDir = [skinRoot stringByAppendingPathComponent:@"icons"]; NSString *iconsDir = [skinRoot stringByAppendingPathComponent:@"icons"];
//
NSLog(@"[SkinBridge] Force reinstall skin: %@", skinId);
[fm removeItemAtPath:skinRoot error:nil];
[fm createDirectoryAtPath:iconsDir [fm createDirectoryAtPath:iconsDir
withIntermediateDirectories:YES withIntermediateDirectories:YES
attributes:nil attributes:nil
error:NULL]; error:NULL];
BOOL isDir = NO;
BOOL hasIconsDir = [fm fileExistsAtPath:iconsDir isDirectory:&isDir] && isDir;
NSArray *contents = hasIconsDir ? [fm contentsOfDirectoryAtPath:iconsDir error:NULL] : nil;
BOOL hasCachedAssets = (contents.count > 0);
NSString *bgPath = [skinRoot stringByAppendingPathComponent:@"background.png"];
if (!hasCachedAssets) {
NSString *fileName = zipName; NSString *fileName = zipName;
if ([fileName hasPrefix:@"bundle://"]) { if ([fileName hasPrefix:@"bundle://"]) {
fileName = [fileName substringFromIndex:[@"bundle://" length]]; fileName = [fileName substringFromIndex:[@"bundle://" length]];
@@ -773,6 +771,7 @@ static NSString * const kKBSkinMetadataThemeKey = @"theme_json";
} else { } else {
zipPath = [bundle pathForResource:base ofType:ext]; zipPath = [bundle pathForResource:base ofType:ext];
} }
if (zipPath.length == 0) { if (zipPath.length == 0) {
if (error) { if (error) {
*error = [NSError errorWithDomain:KBSkinBridgeErrorDomain *error = [NSError errorWithDomain:KBSkinBridgeErrorDomain
@@ -783,12 +782,12 @@ static NSString * const kKBSkinMetadataThemeKey = @"theme_json";
} }
NSError *unzipError = nil; NSError *unzipError = nil;
BOOL ok = [SSZipArchive unzipFileAtPath:zipPath BOOL unzipOK = [SSZipArchive unzipFileAtPath:zipPath
toDestination:skinRoot toDestination:skinRoot
overwrite:YES overwrite:YES
password:nil password:nil
error:&unzipError]; error:&unzipError];
if (!ok || unzipError) { if (!unzipOK || unzipError) {
if (error) { if (error) {
*error = unzipError ?: [NSError errorWithDomain:KBSkinBridgeErrorDomain *error = unzipError ?: [NSError errorWithDomain:KBSkinBridgeErrorDomain
code:KBSkinBridgeErrorUnzipFailed code:KBSkinBridgeErrorUnzipFailed
@@ -828,13 +827,14 @@ static NSString * const kKBSkinMetadataThemeKey = @"theme_json";
NSString *nestedBg = [nestedRoot stringByAppendingPathComponent:@"background.png"]; NSString *nestedBg = [nestedRoot stringByAppendingPathComponent:@"background.png"];
if ([fm fileExistsAtPath:nestedBg]) { if ([fm fileExistsAtPath:nestedBg]) {
NSString *bgPath = [skinRoot stringByAppendingPathComponent:@"background.png"];
[fm removeItemAtPath:bgPath error:nil]; [fm removeItemAtPath:bgPath error:nil];
[fm moveItemAtPath:nestedBg toPath:bgPath error:nil]; [fm moveItemAtPath:nestedBg toPath:bgPath error:nil];
} }
} }
} }
}
NSString *bgPath = [skinRoot stringByAppendingPathComponent:@"background.png"];
NSDictionary *shortNames = payload[kKBSkinPendingIconShortKey]; NSDictionary *shortNames = payload[kKBSkinPendingIconShortKey];
if (![shortNames isKindOfClass:NSDictionary.class] || shortNames.count == 0) { if (![shortNames isKindOfClass:NSDictionary.class] || shortNames.count == 0) {
NSString *currentLanguageCode = [[NSUserDefaults standardUserDefaults] NSString *currentLanguageCode = [[NSUserDefaults standardUserDefaults]

View File

@@ -74,7 +74,7 @@
{ {
"code": "id", "code": "id",
"name": "Bahasa Indonesia", "name": "Bahasa Indonesia",
"defaultSkinZip": "", "defaultSkinZip": "印度尼西亚初始皮肤.zip",
"layouts": [ "layouts": [
{ {
"variant": "qwerty", "variant": "qwerty",

View File

@@ -47,6 +47,7 @@
043213B62F5582710065C888 /* spanish_words.json in Resources */ = {isa = PBXBuildFile; fileRef = 043213B52F5582710065C888 /* spanish_words.json */; }; 043213B62F5582710065C888 /* spanish_words.json in Resources */ = {isa = PBXBuildFile; fileRef = 043213B52F5582710065C888 /* spanish_words.json */; };
043213BD2F56A3920065C888 /* 西班牙初始皮肤.zip in Resources */ = {isa = PBXBuildFile; fileRef = 043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */; }; 043213BD2F56A3920065C888 /* 西班牙初始皮肤.zip in Resources */ = {isa = PBXBuildFile; fileRef = 043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */; };
043213BE2F56A3920065C888 /* 葡萄牙初始皮肤.zip in Resources */ = {isa = PBXBuildFile; fileRef = 043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */; }; 043213BE2F56A3920065C888 /* 葡萄牙初始皮肤.zip in Resources */ = {isa = PBXBuildFile; fileRef = 043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */; };
043213C02F56C9330065C888 /* 印度尼西亚初始皮肤.zip in Resources */ = {isa = PBXBuildFile; fileRef = 043213BF2F56C9330065C888 /* 印度尼西亚初始皮肤.zip */; };
043FBCD22EAF97630036AFE1 /* KBPermissionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04C6EAE12EAF940F0089C901 /* KBPermissionViewController.m */; }; 043FBCD22EAF97630036AFE1 /* KBPermissionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 04C6EAE12EAF940F0089C901 /* KBPermissionViewController.m */; };
0450AA742EF013D000B6AF06 /* KBEmojiCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */; }; 0450AA742EF013D000B6AF06 /* KBEmojiCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */; };
0450AAE22EF03D5100B6AF06 /* KBPerson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0450AAE12EF03D5100B6AF06 /* KBPerson.swift */; }; 0450AAE22EF03D5100B6AF06 /* KBPerson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0450AAE12EF03D5100B6AF06 /* KBPerson.swift */; };
@@ -406,6 +407,7 @@
043213B52F5582710065C888 /* spanish_words.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = spanish_words.json; sourceTree = "<group>"; }; 043213B52F5582710065C888 /* spanish_words.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = spanish_words.json; sourceTree = "<group>"; };
043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = "葡萄牙初始皮肤.zip"; sourceTree = "<group>"; }; 043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = "葡萄牙初始皮肤.zip"; sourceTree = "<group>"; };
043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = "西班牙初始皮肤.zip"; sourceTree = "<group>"; }; 043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = "西班牙初始皮肤.zip"; sourceTree = "<group>"; };
043213BF2F56C9330065C888 /* 印度尼西亚初始皮肤.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = "印度尼西亚初始皮肤.zip"; sourceTree = "<group>"; };
0450AA722EF013D000B6AF06 /* KBEmojiCollectionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBEmojiCollectionCell.h; sourceTree = "<group>"; }; 0450AA722EF013D000B6AF06 /* KBEmojiCollectionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KBEmojiCollectionCell.h; sourceTree = "<group>"; };
0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBEmojiCollectionCell.m; sourceTree = "<group>"; }; 0450AA732EF013D000B6AF06 /* KBEmojiCollectionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KBEmojiCollectionCell.m; sourceTree = "<group>"; };
0450AAE02EF03D5100B6AF06 /* keyBoard-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "keyBoard-Bridging-Header.h"; sourceTree = "<group>"; }; 0450AAE02EF03D5100B6AF06 /* keyBoard-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "keyBoard-Bridging-Header.h"; sourceTree = "<group>"; };
@@ -1307,6 +1309,7 @@
045ED52A2F540FBE00131114 /* normal_them.zip */, 045ED52A2F540FBE00131114 /* normal_them.zip */,
043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */, 043213BB2F56A3920065C888 /* 葡萄牙初始皮肤.zip */,
043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */, 043213BC2F56A3920065C888 /* 西班牙初始皮肤.zip */,
043213BF2F56C9330065C888 /* 印度尼西亚初始皮肤.zip */,
); );
path = Resource; path = Resource;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -2345,6 +2348,7 @@
046086CB2F1A092500757C95 /* comments_mock.json in Resources */, 046086CB2F1A092500757C95 /* comments_mock.json in Resources */,
04E038E32F20E500002CA5A0 /* deepgramAPI.md in Resources */, 04E038E32F20E500002CA5A0 /* deepgramAPI.md in Resources */,
043213A92F5566EF0065C888 /* kb_input_profiles.json in Resources */, 043213A92F5566EF0065C888 /* kb_input_profiles.json in Resources */,
043213C02F56C9330065C888 /* 印度尼西亚初始皮肤.zip in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };