1.8.6 // Starlight arrange, etc. Merge Gitee PR!70 from upd/1.8.6

This commit is contained in:
ShikiSuen 2022-07-29 08:40:20 +00:00 committed by Gitee
commit c68d7dd151
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
20 changed files with 199 additions and 108 deletions

View File

@ -1,5 +1,7 @@
語言:[简体中文](./README.md) | *繁體中文*
僅以此 README 紀念祁建華 (CHIEN-HUA CHI, 1921-2001)。
---
因不可控原因,該倉庫只能保證在 Gitee 有最新的內容可用:

View File

@ -1,5 +1,7 @@
语言:*简体中文* | [繁體中文](./README-CHT.md)
仅以此 README 纪念祁建华 (CHIEN-HUA CHI, 1921-2001)。
---
因不可控原因,该仓库只能保证在 Gitee 有最新的内容可用:

@ -1 +1 @@
Subproject commit 2cbca5af7f281b7932878cda5e63f2dfed6b48b0
Subproject commit 30a5bc773a21d67c3f117eef5346d3b35433bbaa

View File

@ -317,6 +317,10 @@ class KeyHandler {
composer.ensureParser(arrange: .ofMiTAC)
case MandarinParser.ofFakeSeigyou.rawValue:
composer.ensureParser(arrange: .ofFakeSeigyou)
case MandarinParser.ofSeigyou.rawValue:
composer.ensureParser(arrange: .ofSeigyou)
case MandarinParser.ofStarlight.rawValue:
composer.ensureParser(arrange: .ofStarlight)
case MandarinParser.ofHanyuPinyin.rawValue:
composer.ensureParser(arrange: .ofHanyuPinyin)
case MandarinParser.ofSecondaryPinyin.rawValue:

View File

@ -48,6 +48,7 @@ public struct Tekkon {
case ofMiTAC = 6
case ofSeigyou = 7
case ofFakeSeigyou = 8
case ofStarlight = 9
case ofHanyuPinyin = 100
case ofSecondaryPinyin = 101
case ofYalePinyin = 102
@ -74,6 +75,8 @@ public struct Tekkon {
return "FakeSeigyou"
case .ofSeigyou:
return "Seigyou"
case .ofStarlight:
return "Starlight"
case .ofHanyuPinyin:
return "HanyuPinyin"
case .ofSecondaryPinyin:
@ -334,6 +337,8 @@ public struct Tekkon {
return Tekkon.mapSeigyou[input] != nil
case .ofFakeSeigyou:
return Tekkon.mapFakeSeigyou[input] != nil
case .ofStarlight:
return Tekkon.mapStarlightStaticKeys[input] != nil
case .ofHanyuPinyin, .ofSecondaryPinyin, .ofYalePinyin, .ofHualuoPinyin, .ofUniversalPinyin:
return Tekkon.mapArayuruPinyin.contains(input)
}
@ -390,7 +395,10 @@ public struct Tekkon {
case "", "":
if vowel.value == "" { vowel = "" }
case "":
if "".contains(semivowel.value) { semivowel = "" }
if "ㄧㄩ".contains(semivowel.value) { thePhone = "" }
case "":
if "".contains(semivowel.value) { semivowel = "" }
case "", "":
if "ㄅㄆㄇㄈ".contains(consonant.value), semivowel.value == "" { semivowel.clear() }
case "":
@ -398,6 +406,8 @@ public struct Tekkon {
case "":
if "ㄅㄆㄇㄈ".contains(consonant.value), "ㄛㄥ".contains(vowel.value) { vowel.clear() }
if "ㄋㄌ".contains(consonant.value), "".contains(vowel.value) { vowel.clear() }
if "".contains(vowel.value) { vowel = "" }
if "".contains(vowel.value) { thePhone = "" }
case "", "", "", "":
if ["ㄨㄛ", "ㄨㄥ"].contains(semivowel.value + vowel.value) { semivowel.clear() }
default: break
@ -537,12 +547,61 @@ public struct Tekkon {
return Tekkon.mapSeigyou[key] ?? ""
case .ofFakeSeigyou:
return Tekkon.mapFakeSeigyou[key] ?? ""
case .ofStarlight:
return handleStarlight(key: key)
case .ofHanyuPinyin, .ofSecondaryPinyin, .ofYalePinyin, .ofHualuoPinyin, .ofUniversalPinyin:
break //
}
return ""
}
///
/// - Parameter incomingPhonabet: Phonabet
mutating func commonFixWhenHandlingDynamicArrangeInputs(target incomingPhonabet: Phonabet) {
//
switch incomingPhonabet.type {
case .semivowel:
switch consonant {
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
default: break
}
case .vowel:
if semivowel.isEmpty {
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
}
default: break
}
}
///
///
///
@ -577,33 +636,8 @@ public struct Tekkon {
default: break
}
//
if !consonant.isEmpty, incomingPhonabet.type == .semivowel {
switch consonant {
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
default: break
}
}
//
commonFixWhenHandlingDynamicArrangeInputs(target: incomingPhonabet)
if "dfjk ".contains(key),
!consonant.isEmpty, semivowel.isEmpty, vowel.isEmpty
@ -666,51 +700,7 @@ public struct Tekkon {
}
//
switch incomingPhonabet.type {
case .semivowel:
switch consonant {
case "": //
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
case "":
if intonation.isEmpty {
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
}
case "":
if intonation.isEmpty {
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
}
case "":
switch incomingPhonabet {
case "": consonant = "" //
case "": consonant = "" //
case "": consonant = "" //
default: break
}
default: break
}
case .vowel:
if semivowel.isEmpty {
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
}
default: break
}
commonFixWhenHandlingDynamicArrangeInputs(target: incomingPhonabet)
if "dfjs ".contains(key) {
if !consonant.isEmpty, semivowel.isEmpty, vowel.isEmpty {
@ -749,6 +739,48 @@ public struct Tekkon {
return strReturn
}
///
///
///
/// - Parameters:
/// - key: String
mutating func handleStarlight(key: String) -> String {
var strReturn = Tekkon.mapStarlightStaticKeys[key] ?? ""
let incomingPhonabet = Phonabet(strReturn)
switch key {
case "e": return "ㄧㄩ".contains(semivowel.value) ? "" : ""
case "f": return vowel == "" || !isPronouncable ? "" : ""
case "g": return vowel == "" || !isPronouncable ? "" : ""
case "k": return vowel == "" || !isPronouncable ? "" : ""
case "l": return vowel == "" || !isPronouncable ? "" : ""
case "m": return vowel == "" || !isPronouncable ? "" : ""
case "n": return vowel == "" || !isPronouncable ? "" : ""
case "t": return vowel == "" || !isPronouncable ? "" : ""
default: break
}
//
commonFixWhenHandlingDynamicArrangeInputs(target: incomingPhonabet)
if "67890 ".contains(key) {
if !consonant.isEmpty, semivowel.isEmpty, vowel.isEmpty {
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
consonant.selfReplace("", "")
}
}
//
if "efgklmn".contains(key) { strReturn = "" }
//
return strReturn
}
///
///
///
@ -765,7 +797,13 @@ public struct Tekkon {
case "b": if !consonant.isEmpty || !semivowel.isEmpty { vowel = "" } else { consonant = "" }
case "i": if vowel.isEmpty || vowel == "" { vowel = "" } else { vowel = "" }
case "l": if vowel.isEmpty || vowel == "" { vowel = "" } else { vowel = "" }
case "n": if !consonant.isEmpty || !semivowel.isEmpty { vowel = "" } else { consonant = "" }
case "n":
if !consonant.isEmpty || !semivowel.isEmpty {
if consonant == "", semivowel.isEmpty, vowel.isEmpty { consonant.clear() }
vowel = ""
} else {
consonant = ""
}
case "o": if vowel.isEmpty || vowel == "" { vowel = "" } else { vowel = "" }
case "p": if vowel.isEmpty || vowel == "" { vowel = "" } else { vowel = "" }
case "q": if consonant.isEmpty || consonant == "" { consonant = "" } else { consonant = "" }
@ -781,7 +819,7 @@ public struct Tekkon {
} else if !semivowel.isEmpty {
vowel = ""
} else {
semivowel = ""
receiveKey(fromPhonabet: "ㄐㄑㄒ".contains(consonant.value) ? "" : "")
}
case "u":
if semivowel == "", vowel != "" {
@ -895,9 +933,11 @@ public struct Tekkon {
}
///
/// - Parameter target: 12345 調
/// - Parameters:
/// - target: 12345 調
/// - newToneOne:
/// - Returns:
static func cnvHanyuPinyinToPhona(target: String) -> String {
static func cnvHanyuPinyinToPhona(target: String, newToneOne: String = "") -> String {
if target.contains("_") { return target }
var result = target
for key in Tekkon.mapHanyuPinyin.keys.sorted(by: { $0.count > $1.count }) {
@ -906,7 +946,7 @@ public struct Tekkon {
}
for key in Tekkon.mapArayuruPinyinIntonation.keys.sorted(by: { $0.count > $1.count }) {
guard let value = Tekkon.mapArayuruPinyinIntonation[key] else { continue }
result = result.replacingOccurrences(of: key, with: (key == "1") ? "" : value)
result = result.replacingOccurrences(of: key, with: (key == "1") ? newToneOne : value)
}
return result
}
@ -1371,6 +1411,17 @@ public struct Tekkon {
"w": "", "x": "", "y": "", "z": "", " ": " ",
]
///
///
/// 便 validity check
///
static let mapStarlightStaticKeys: [String: String] = [
"a": "", "b": "", "c": "", "d": "", "e": "", "f": "", "g": "", "h": "", "i": "", "j": "", "k": "",
"l": "", "m": "", "n": "", "o": "", "p": "", "q": "", "r": "", "s": "", "t": "", "u": "", "v": "",
"w": "", "x": "", "y": "", "z": "", " ": " ", "1": " ", "2": "ˊ", "3": "ˇ", "4": "ˋ", "5": "˙", "6": " ",
"7": "ˊ", "8": "ˇ", "9": "ˋ", "0": "˙",
]
///
static let mapQwertyETenTraditional: [String: String] = [
"'": "", ",": "", "-": "", ".": "", "/": "", "0": "", "1": "˙", "2": "ˊ", "3": "ˇ", "4": "ˋ", "7": "",

View File

@ -189,6 +189,8 @@ enum MandarinParser: Int {
case ofMiTAC = 5
case ofFakeSeigyou = 6
case ofDachen26 = 7
case ofSeigyou = 8
case ofStarlight = 9
case ofHanyuPinyin = 10
case ofSecondaryPinyin = 11
case ofYalePinyin = 12
@ -213,6 +215,10 @@ enum MandarinParser: Int {
return "FakeSeigyou"
case .ofDachen26:
return "Dachen26"
case .ofSeigyou:
return "Seigyou"
case .ofStarlight:
return "Starlight"
case .ofHanyuPinyin:
return "HanyuPinyin"
case .ofSecondaryPinyin:

View File

@ -127,7 +127,7 @@
"Eten 26" = "Eten 26";
"Eten Traditional" = "Eten Traditional";
"Experience" = "Experience";
"Fake Seigyou" = "Fake Seigyou";
"Fake Seigyou" = "Fake Seigyou (Similar to JinYei)";
"Follow OS settings" = "Follow OS settings";
"for cycling candidates" = "for cycling candidates";
"for cycling pages" = "for cycling pages";
@ -149,6 +149,7 @@
"Phonetic Parser:" = "Phonetic Parser:";
"Push the cursor in front of the phrase after selection" = "Push the cursor in front of the phrase after selection";
"Secondary Pinyin with Numeral Intonation" = "Secondary Pinyin with Numeral Intonation";
"Seigyou" = "Seigyou (JinYei)";
"Selection Keys:" = "Selection Keys:";
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip";
"Show page buttons in candidate window" = "Show page buttons in candidate window";
@ -157,6 +158,7 @@
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates";
"Specify the maximum characters allowed in the composition buffer." = "Specify the maximum characters allowed in the composition buffer.";
"Starlight" = "Starlight";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)";
"Traditional Chinese" = "Traditional Chinese";
"Typing Style:" = "Typing Style:";

View File

@ -127,7 +127,7 @@
"Eten 26" = "Eten 26";
"Eten Traditional" = "Eten Traditional";
"Experience" = "Experience";
"Fake Seigyou" = "Fake Seigyou";
"Fake Seigyou" = "Fake Seigyou (Similar to JinYei)";
"Follow OS settings" = "Follow OS settings";
"for cycling candidates" = "for cycling candidates";
"for cycling pages" = "for cycling pages";
@ -149,6 +149,7 @@
"Phonetic Parser:" = "Phonetic Parser:";
"Push the cursor in front of the phrase after selection" = "Push the cursor in front of the phrase after selection";
"Secondary Pinyin with Numeral Intonation" = "Secondary Pinyin with Numeral Intonation";
"Seigyou" = "Seigyou (JinYei)";
"Selection Keys:" = "Selection Keys:";
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip";
"Show page buttons in candidate window" = "Show page buttons in candidate window";
@ -157,6 +158,7 @@
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates";
"Specify the maximum characters allowed in the composition buffer." = "Specify the maximum characters allowed in the composition buffer.";
"Starlight" = "Starlight";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)";
"Traditional Chinese" = "Traditional Chinese";
"Typing Style:" = "Typing Style:";

View File

@ -149,6 +149,7 @@
"Phonetic Parser:" = "注音配列:";
"Push the cursor in front of the phrase after selection" = "候補選択の直後、すぐカーソルを単語の向こうに推し進める";
"Secondary Pinyin with Numeral Intonation" = "国音二式 (ローマ字+数字音調)";
"Seigyou" = "精業配列";
"Selection Keys:" = "言選り用キー:";
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "弁音合併入力(入力緩衝列とヒントで音読みを漢語弁音に)";
"Show page buttons in candidate window" = "入力候補陳列の側にページボタンを表示";
@ -157,6 +158,7 @@
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+Space で次のページ、Space で次の候補文字を";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space で次のページ、Shift+Space で次の候補文字を";
"Specify the maximum characters allowed in the composition buffer." = "緩衝列に入れる文字の数の上限をご指定ください。";
"Starlight" = "星光配列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "マナーモード // 外すと入力間違った時に変な声が出る";
"Traditional Chinese" = "繁体中国語";
"Typing Style:" = "入力習慣:";

View File

@ -150,6 +150,7 @@
"Phonetic Parser:" = "注音排列:";
"Push the cursor in front of the phrase after selection" = "在选字后将游标置于该字词的前方";
"Secondary Pinyin with Numeral Intonation" = "国音二式+数字标调";
"Seigyou" = "精业排列";
"Selection Keys:" = "选字键:";
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音并击(组字区与工具提示内显示汉语拼音)";
"Show page buttons in candidate window" = "在选字窗内显示翻页按钮";
@ -158,6 +159,7 @@
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格键 换下一页,空格键 换选下一个后选字";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "空格键 换下一页Shift+空格键 换选下一个后选字";
"Specify the maximum characters allowed in the composition buffer." = "请指定组字缓冲区内的文字数的上限。";
"Starlight" = "星光排列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "廉耻模式 // 取消勾选的话,敲错字时会有异音";
"Traditional Chinese" = "繁体中文";
"Typing Style:" = "输入风格:";

View File

@ -149,6 +149,7 @@
"Phonetic Parser:" = "注音排列:";
"Push the cursor in front of the phrase after selection" = "在選字後將游標置於該字詞的前方";
"Secondary Pinyin with Numeral Intonation" = "國音二式+數字標調";
"Seigyou" = "精業排列";
"Selection Keys:" = "選字鍵:";
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音並擊(組字區與工具提示內顯示漢語拼音)";
"Show page buttons in candidate window" = "在選字窗內顯示翻頁按鈕";
@ -157,6 +158,7 @@
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格鍵 換下一頁,空格鍵 換選下一個後選字";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "空格鍵 換下一頁Shift+空格鍵 換選下一個後選字";
"Specify the maximum characters allowed in the composition buffer." = "請指定組字緩衝區內的文字數的上限。";
"Starlight" = "星光排列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "廉恥模式 // 取消勾選的話,敲錯字時會有異音";
"Traditional Chinese" = "繁體中文";
"Typing Style:" = "輸入風格:";

View File

@ -60,15 +60,20 @@ struct suiPrefPaneKeyboard: View {
Picker("", selection: $selMandarinParser) {
Group {
Text(LocalizedStringKey("Dachen (Microsoft Standard / Wang / 01, etc.)")).tag(0)
Text(LocalizedStringKey("Dachen 26 (libChewing)")).tag(7)
Text(LocalizedStringKey("Eten Traditional")).tag(1)
Text(LocalizedStringKey("Eten 26")).tag(3)
Text(LocalizedStringKey("IBM")).tag(4)
Text(LocalizedStringKey("Hsu")).tag(2)
Text(LocalizedStringKey("MiTAC")).tag(5)
Text(LocalizedStringKey("Seigyou")).tag(8)
Text(LocalizedStringKey("Fake Seigyou")).tag(6)
}
Divider()
Group {
Text(LocalizedStringKey("Dachen 26 (libChewing)")).tag(7)
Text(LocalizedStringKey("Eten 26")).tag(3)
Text(LocalizedStringKey("Hsu")).tag(2)
Text(LocalizedStringKey("Starlight")).tag(9)
}
Divider()
Group {
Text(LocalizedStringKey("Hanyu Pinyin with Numeral Intonation")).tag(10)
Text(LocalizedStringKey("Secondary Pinyin with Numeral Intonation")).tag(11)

View File

@ -27,13 +27,13 @@
<userDefaultsController representsSharedInstance="YES" id="32"/>
<window title="vChewing Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="1" userLabel="frmPrefWindow">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" fullSizeContentView="YES"/>
<rect key="contentRect" x="401" y="295" width="501" height="494"/>
<rect key="contentRect" x="401" y="295" width="445" height="501"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
<view key="contentView" id="2" customClass="NSVisualEffectView">
<rect key="frame" x="0.0" y="0.0" width="501" height="494"/>
<rect key="frame" x="0.0" y="0.0" width="445" height="501"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
</view>
<point key="canvasLocation" x="-1029" y="60"/>
<point key="canvasLocation" x="-896.5" y="-1190"/>
</window>
<visualEffectView blendingMode="behindWindow" material="sidebar" state="followsWindowActiveState" id="BUt-lg-GPp" userLabel="vwrGeneral">
<rect key="frame" x="0.0" y="0.0" width="445" height="423"/>
@ -862,13 +862,16 @@
<menu key="menu" title="OtherViews" id="5">
<items>
<menuItem title="Standard" state="on" id="6"/>
<menuItem title="Dachen 26" tag="7" id="xjP-r7-GaK"/>
<menuItem title="ETen" tag="1" id="7"/>
<menuItem title="ETen26" tag="3" id="9"/>
<menuItem title="IBM" tag="4" id="137"/>
<menuItem title="Hsu" tag="2" id="8"/>
<menuItem title="MiTAC" tag="5" id="7fV-x8-WHQ"/>
<menuItem title="Seigyou" tag="8" id="vpd-zx-GIk"/>
<menuItem title="Fake Seigyou" tag="6" id="27F-8T-FkQ"/>
<menuItem isSeparatorItem="YES" id="0iQ-Sc-ad6"/>
<menuItem title="Dachen 26" tag="7" id="xjP-r7-GaK"/>
<menuItem title="ETen26" tag="3" id="9"/>
<menuItem title="Hsu" tag="2" id="8"/>
<menuItem title="Starlight" tag="9" id="DbW-eq-ZdB"/>
<menuItem isSeparatorItem="YES" id="DuR-GO-lab"/>
<menuItem title="Hanyu Pinyin" tag="10" id="10"/>
<menuItem title="Secondary Pinyin" tag="11" id="Parser11"/>

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "Automatically correct reading combinations when typing";
"chkFetchSuggestionsFromUserOverrideModel.title" = "Applying typing suggestions from half-life user override model";
"chkUseFixecCandidateOrderOnSelection.title" = "Always use fixed listing order in candidate window";
"DbW-eq-ZdB.title" = "Starlight";
"dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages";
"E1l-m8-xgb.title" = "Advanced Settings";
"eia-1F-Do0.title" = "Auto-convert traditional Chinese glyphs to JIS Shinjitai characters";
@ -73,6 +74,7 @@
"sZx-18-8dO.title" = "Debug Mode";
"TXr-FF-ehw.title" = "Traditional Chinese";
"ueU-Rz-a1C.title" = "Choose the behavior of (Shift+)Tab key in the candidate window.";
"vpd-zx-GIk.title" = "Seigyou (JinYei)";
"W24-T4-cg0.title" = "Enable CNS11643 Support (2022-07-20)";
"wFR-zX-M8H.title" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip";
"wN3-k3-b2a.title" = "Choose your desired user data folder path. Will be omitted if invalid.";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "入力中で打ち間違った発音組み合わせを自動的に訂正する";
"chkFetchSuggestionsFromUserOverrideModel.title" = "入力中で臨時記憶モジュールからお薦めの候補を自動的に選ぶ";
"chkUseFixecCandidateOrderOnSelection.title" = "候補文字を固定順番で陳列する";
"DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を";
"E1l-m8-xgb.title" = "詳細設定";
"eia-1F-Do0.title" = "入力した繁体字を日文 JIS 新字体と自動変換";
@ -73,6 +74,7 @@
"sZx-18-8dO.title" = "欠陥辿着モード";
"TXr-FF-ehw.title" = "繁体中国語";
"ueU-Rz-a1C.title" = "入力候補陳列での (Shift+)Tab キーの輪番切替対象をご指定ください。";
"vpd-zx-GIk.title" = "精業配列";
"W24-T4-cg0.title" = "全字庫モード // 入力可能の漢字数倍増 (2022-07-20)";
"wFR-zX-M8H.title" = "弁音合併入力(入力緩衝列とヒントで音読みを漢語弁音に)";
"wN3-k3-b2a.title" = "欲しがるユーザー辞書保存先をご指定ください。無効の保存先設定は効かぬ。";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "敲字时自动纠正读音组合";
"chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字时自动套用来自半衰记忆模组的建议";
"chkUseFixecCandidateOrderOnSelection.title" = "以固定顺序来陈列选字窗内的候选字";
"DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space 换下一页Space 换选下一个候选字。";
"E1l-m8-xgb.title" = "进阶设定";
"eia-1F-Do0.title" = "自动将繁体中文字转换为日本简化字JIS 新字体)";
@ -73,6 +74,7 @@
"sZx-18-8dO.title" = "侦错模式";
"TXr-FF-ehw.title" = "繁体中文";
"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 热键在选字窗内的轮替操作对象。";
"vpd-zx-GIk.title" = "精业";
"W24-T4-cg0.title" = "启用 CNS11643 全字库支援 (2022-07-20)";
"wFR-zX-M8H.title" = "拼音并击(组字区与工具提示内显示汉语拼音)";
"wN3-k3-b2a.title" = "请在此指定您想指定的使用者语汇档案目录。无效值会被忽略。";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "敲字時自動糾正讀音組合";
"chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字時自動套用來自半衰記憶模組的建議";
"chkUseFixecCandidateOrderOnSelection.title" = "以固定順序來陳列選字窗內的候選字";
"DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space 換下一頁Space 換選下一個候選字";
"E1l-m8-xgb.title" = "進階設定";
"eia-1F-Do0.title" = "自動將繁體中文字轉換為日本簡化字JIS 新字體)";
@ -73,6 +74,7 @@
"sZx-18-8dO.title" = "偵錯模式";
"TXr-FF-ehw.title" = "繁體中文";
"ueU-Rz-a1C.title" = "指定 (Shift+)Tab 熱鍵在選字窗內的輪替操作對象。";
"vpd-zx-GIk.title" = "精業";
"W24-T4-cg0.title" = "啟用 CNS11643 全字庫支援 (2022-07-20)";
"wFR-zX-M8H.title" = "拼音並擊(組字區與工具提示內顯示漢語拼音)";
"wN3-k3-b2a.title" = "請在此指定您想指定的使用者語彙檔案目錄。無效值會被忽略。";

View File

@ -3,9 +3,9 @@
<plist version="1.0">
<dict>
<key>CFBundleShortVersionString</key>
<string>1.8.5</string>
<string>1.8.6</string>
<key>CFBundleVersion</key>
<string>1985</string>
<string>1986</string>
<key>UpdateInfoEndpoint</key>
<string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string>
<key>UpdateInfoSite</key>

View File

@ -726,7 +726,7 @@
<key>USE_HFS+_COMPRESSION</key>
<false/>
<key>VERSION</key>
<string>1.8.5</string>
<string>1.8.6</string>
</dict>
<key>TYPE</key>
<integer>0</integer>

View File

@ -1393,7 +1393,7 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
@ -1403,7 +1403,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests;
@ -1432,13 +1432,13 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewingTests;
@ -1469,7 +1469,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
@ -1490,7 +1490,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1519,7 +1519,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
@ -1536,7 +1536,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1650,7 +1650,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@ -1678,7 +1678,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1705,7 +1705,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@ -1727,7 +1727,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -1749,7 +1749,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -1769,7 +1769,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1791,7 +1791,7 @@
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1985;
CURRENT_PROJECT_VERSION = 1986;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -1805,7 +1805,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.8.5;
MARKETING_VERSION = 1.8.6;
PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";