From 098f0bd8dd34f4045de279e39d0e5bd96f2447fa Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 10 Jan 2022 16:10:45 +0800 Subject: [PATCH] Zonble: Adds an option to let users to clear entire buffer using ESC key. --- Source/Base.lproj/preferences.xib | 256 ++++++++++++++--------- Source/InputMethodController.mm | 44 ++-- Source/en.lproj/preferences.strings | 108 ++++++++++ Source/zh-Hans.lproj/preferences.strings | 108 ++++++++++ Source/zh-Hans.lproj/preferences.xib | 237 --------------------- Source/zh-Hant.lproj/preferences.strings | 108 ++++++++++ Source/zh-Hant.lproj/preferences.xib | 237 --------------------- vChewing.xcodeproj/project.pbxproj | 15 +- 8 files changed, 527 insertions(+), 586 deletions(-) create mode 100644 Source/en.lproj/preferences.strings create mode 100644 Source/zh-Hans.lproj/preferences.strings delete mode 100644 Source/zh-Hans.lproj/preferences.xib create mode 100644 Source/zh-Hant.lproj/preferences.strings delete mode 100644 Source/zh-Hant.lproj/preferences.xib diff --git a/Source/Base.lproj/preferences.xib b/Source/Base.lproj/preferences.xib index 4534c6b6..be6e7530 100644 --- a/Source/Base.lproj/preferences.xib +++ b/Source/Base.lproj/preferences.xib @@ -1,8 +1,8 @@ - + - + @@ -16,18 +16,84 @@ - + - - + + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Item 1 + Item 2 + Item 3 + + + + + + + + + + + + + + + + + + + @@ -46,68 +112,44 @@ - - - - + + + - - - + + - - - + + - - - + + - + @@ -129,11 +171,10 @@ - - - + + - + @@ -155,9 +196,11 @@ - + - + + + @@ -178,46 +221,11 @@ - - - - - - - - - - Item 1 - Item 2 - Item 3 - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/Source/InputMethodController.mm b/Source/InputMethodController.mm index d0ad6f74..17b7bb07 100644 --- a/Source/InputMethodController.mm +++ b/Source/InputMethodController.mm @@ -79,6 +79,7 @@ static NSString *const kComposingBufferSizePreferenceKey = @"ComposingBufferSize static NSString *const kDisableUserCandidateSelectionLearning = @"DisableUserCandidateSelectionLearning"; static NSString *const kChooseCandidateUsingSpaceKey = @"ChooseCandidateUsingSpaceKey"; static NSString *const kChineseConversionEnabledKey = @"ChineseConversionEnabledKey"; +static NSString *const kEscToCleanInputBufferKey = @"EscToCleanInputBufferKey"; // advanced (usually optional) settings static NSString *const kCandidateTextFontName = @"CandidateTextFontName"; @@ -742,21 +743,40 @@ public: } // Esc - if (charCode == 27) { - // if reading is not empty, we cancel the reading; Apple's built-in Zhuyin (and the erstwhile Hanin) has a default option that Esc "cancels" the current composed character and revert it to Bopomofo reading, in odds with the expectation of users from other platforms + if (charCode == 27) { + BOOL escToClearInputBufferEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:kEscToCleanInputBufferKey]; - if (_bpmfReadingBuffer->isEmpty()) { - // no nee to beep since the event is deliberately triggered by user + if (escToClearInputBufferEnabled) { + // if the optioon is enabled, we clear everythiong including the composing + // buffer, walked nodes and the reading. + if (![_composingBuffer length]) { + return NO; + } + _bpmfReadingBuffer->clear(); + _builder->clear(); + _walkedNodes.clear(); + [_composingBuffer setString:@""]; + } + else { + // if reading is not empty, we cancel the reading; Apple's built-in + // Zhuyin (and the erstwhile Hanin) has a default option that Esc + // "cancels" the current composed character and revert it to + // Bopomofo reading, in odds with the expectation of users from + // other platforms - if (![_composingBuffer length]) { - return NO; - } - } - else { - _bpmfReadingBuffer->clear(); - } + if (_bpmfReadingBuffer->isEmpty()) { + // no nee to beep since the event is deliberately triggered by user - [self updateClientComposingBuffer:client]; + if (![_composingBuffer length]) { + return NO; + } + } + else { + _bpmfReadingBuffer->clear(); + } + } + + [self updateClientComposingBuffer:client]; return YES; } diff --git a/Source/en.lproj/preferences.strings b/Source/en.lproj/preferences.strings new file mode 100644 index 00000000..ff209dfa --- /dev/null +++ b/Source/en.lproj/preferences.strings @@ -0,0 +1,108 @@ + +/* Class = "NSWindow"; title = "Bopomofo Preferences"; ObjectID = "1"; */ +"1.title" = "Bopomofo Preferences"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "5"; */ +"5.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "Standard"; ObjectID = "6"; */ +"6.title" = "Standard"; + +/* Class = "NSMenuItem"; title = "ETen"; ObjectID = "7"; */ +"7.title" = "ETen"; + +/* Class = "NSMenuItem"; title = "Hsu"; ObjectID = "8"; */ +"8.title" = "Hsu"; + +/* Class = "NSMenuItem"; title = "ETen26"; ObjectID = "9"; */ +"9.title" = "ETen26"; + +/* Class = "NSMenuItem"; title = "Hanyu Pinyin"; ObjectID = "10"; */ +"10.title" = "Hanyu Pinyin"; + +/* Class = "NSTextFieldCell"; title = "Bopomofo Keyboard Layout:"; ObjectID = "12"; */ +"12.title" = "Bopomofo Keyboard Layout:"; + +/* Class = "NSTextFieldCell"; title = "Show Candidate Phrase:"; ObjectID = "14"; */ +"14.title" = "Show Candidate Phrase:"; + +/* Class = "NSButtonCell"; title = "Before the cursor (like Hanin)"; ObjectID = "16"; */ +"16.title" = "Before the cursor (like Hanin)"; + +/* Class = "NSButtonCell"; title = "After the cursor (like MS IME)"; ObjectID = "17"; */ +"17.title" = "After the cursor (like MS IME)"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "18"; */ +"18.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "20"; */ +"20.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Horizontal"; ObjectID = "21"; */ +"21.title" = "Horizontal"; + +/* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ +"22.title" = "Vertical"; + +/* Class = "NSTextFieldCell"; title = "Candidate List Style:"; ObjectID = "24"; */ +"24.title" = "Candidate List Style:"; + +/* Class = "NSTextFieldCell"; title = "Candidate Text Size:"; ObjectID = "29"; */ +"29.title" = "Candidate Text Size:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "92"; */ +"92.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "12"; ObjectID = "93"; */ +"93.title" = "12"; + +/* Class = "NSMenuItem"; title = "14"; ObjectID = "94"; */ +"94.title" = "14"; + +/* Class = "NSMenuItem"; title = "16"; ObjectID = "95"; */ +"95.title" = "16"; + +/* Class = "NSMenuItem"; title = "18"; ObjectID = "96"; */ +"96.title" = "18"; + +/* Class = "NSMenuItem"; title = "24"; ObjectID = "98"; */ +"98.title" = "24"; + +/* Class = "NSMenuItem"; title = "32"; ObjectID = "99"; */ +"99.title" = "32"; + +/* Class = "NSMenuItem"; title = "64"; ObjectID = "100"; */ +"100.title" = "64"; + +/* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ +"101.title" = "96"; + +/* Class = "NSButtonCell"; title = "Space key chooses candidate"; ObjectID = "110"; */ +"110.title" = "Space key chooses candidate"; + +/* Class = "NSTextFieldCell"; title = "Alphanumeric Keyboard Layout:"; ObjectID = "126"; */ +"126.title" = "Alphanumeric Keyboard Layout:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "128"; */ +"128.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "IBM"; ObjectID = "137"; */ +"137.title" = "IBM"; + +/* Class = "NSTextFieldCell"; title = "Selection Keys:"; ObjectID = "FnD-oH-El5"; */ +"FnD-oH-El5.title" = "Selection Keys:"; + +/* Class = "NSButtonCell"; title = "Check for updates automatically"; ObjectID = "Z9t-P0-BLF"; */ +"Z9t-P0-BLF.title" = "Check for updates automatically"; + +/* Class = "NSButtonCell"; title = "ESC key clears entire input buffer"; ObjectID = "f2j-xD-4xK"; */ +"f2j-xD-4xK.title" = "ESC key clears entire input buffer"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[0] = "Item 1"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[0]" = "Item 1"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[1] = "Item 2"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[1]" = "Item 2"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[2] = "Item 3"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[2]" = "Item 3"; diff --git a/Source/zh-Hans.lproj/preferences.strings b/Source/zh-Hans.lproj/preferences.strings new file mode 100644 index 00000000..90cc9335 --- /dev/null +++ b/Source/zh-Hans.lproj/preferences.strings @@ -0,0 +1,108 @@ + +/* Class = "NSWindow"; title = "Bopomofo Preferences"; ObjectID = "1"; */ +"1.title" = "注音偏好设定"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "5"; */ +"5.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "Standard"; ObjectID = "6"; */ +"6.title" = "大千"; + +/* Class = "NSMenuItem"; title = "ETen"; ObjectID = "7"; */ +"7.title" = "倚天传统"; + +/* Class = "NSMenuItem"; title = "Hsu"; ObjectID = "8"; */ +"8.title" = "许氏"; + +/* Class = "NSMenuItem"; title = "ETen26"; ObjectID = "9"; */ +"9.title" = "倚天二六"; + +/* Class = "NSMenuItem"; title = "Hanyu Pinyin"; ObjectID = "10"; */ +"10.title" = "汉语拼音+数字标调"; + +/* Class = "NSTextFieldCell"; title = "Bopomofo Keyboard Layout:"; ObjectID = "12"; */ +"12.title" = "注音键盘布局:"; + +/* Class = "NSTextFieldCell"; title = "Show Candidate Phrase:"; ObjectID = "14"; */ +"14.title" = "用于显示候选词的游标定位:"; + +/* Class = "NSButtonCell"; title = "Before the cursor (like Hanin)"; ObjectID = "16"; */ +"16.title" = "游标前置(像松下汉音输入法)"; + +/* Class = "NSButtonCell"; title = "After the cursor (like MS IME)"; ObjectID = "17"; */ +"17.title" = "游标后置(像微软新注音)"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "18"; */ +"18.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "20"; */ +"20.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Horizontal"; ObjectID = "21"; */ +"21.title" = "横向"; + +/* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ +"22.title" = "纵向"; + +/* Class = "NSTextFieldCell"; title = "Candidate List Style:"; ObjectID = "24"; */ +"24.title" = "候选词窗格排版:"; + +/* Class = "NSTextFieldCell"; title = "Candidate Text Size:"; ObjectID = "29"; */ +"29.title" = "候选词窗格字型大小:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "92"; */ +"92.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "12"; ObjectID = "93"; */ +"93.title" = "12"; + +/* Class = "NSMenuItem"; title = "14"; ObjectID = "94"; */ +"94.title" = "14"; + +/* Class = "NSMenuItem"; title = "16"; ObjectID = "95"; */ +"95.title" = "16"; + +/* Class = "NSMenuItem"; title = "18"; ObjectID = "96"; */ +"96.title" = "18"; + +/* Class = "NSMenuItem"; title = "24"; ObjectID = "98"; */ +"98.title" = "24"; + +/* Class = "NSMenuItem"; title = "32"; ObjectID = "99"; */ +"99.title" = "32"; + +/* Class = "NSMenuItem"; title = "64"; ObjectID = "100"; */ +"100.title" = "64"; + +/* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ +"101.title" = "96"; + +/* Class = "NSButtonCell"; title = "Space key chooses candidate"; ObjectID = "110"; */ +"110.title" = "摁空格键以选取候选词"; + +/* Class = "NSTextFieldCell"; title = "Alphanumeric Keyboard Layout:"; ObjectID = "126"; */ +"126.title" = "英数键盘布局:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "128"; */ +"128.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "IBM"; ObjectID = "137"; */ +"137.title" = "IBM"; + +/* Class = "NSTextFieldCell"; title = "Selection Keys:"; ObjectID = "FnD-oH-El5"; */ +"FnD-oH-El5.title" = "选字键:"; + +/* Class = "NSButtonCell"; title = "Check for updates automatically"; ObjectID = "Z9t-P0-BLF"; */ +"Z9t-P0-BLF.title" = "自动检查软件更新"; + +/* Class = "NSButtonCell"; title = "ESC key clears entire input buffer"; ObjectID = "f2j-xD-4xK"; */ +"f2j-xD-4xK.title" = "敲 ESC 键以清空整个输入缓冲区"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[0] = "Item 1"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[0]" = "Item 1"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[1] = "Item 2"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[1]" = "Item 2"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[2] = "Item 3"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[2]" = "Item 3"; diff --git a/Source/zh-Hans.lproj/preferences.xib b/Source/zh-Hans.lproj/preferences.xib deleted file mode 100644 index b6c6b13e..00000000 --- a/Source/zh-Hans.lproj/preferences.xib +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Item 1 - Item 2 - Item 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/zh-Hant.lproj/preferences.strings b/Source/zh-Hant.lproj/preferences.strings new file mode 100644 index 00000000..05de70d8 --- /dev/null +++ b/Source/zh-Hant.lproj/preferences.strings @@ -0,0 +1,108 @@ + +/* Class = "NSWindow"; title = "Bopomofo Preferences"; ObjectID = "1"; */ +"1.title" = "注音偏好設定"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "5"; */ +"5.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "Standard"; ObjectID = "6"; */ +"6.title" = "大千"; + +/* Class = "NSMenuItem"; title = "ETen"; ObjectID = "7"; */ +"7.title" = "倚天傳統"; + +/* Class = "NSMenuItem"; title = "Hsu"; ObjectID = "8"; */ +"8.title" = "許氏"; + +/* Class = "NSMenuItem"; title = "ETen26"; ObjectID = "9"; */ +"9.title" = "倚天二六"; + +/* Class = "NSMenuItem"; title = "Hanyu Pinyin"; ObjectID = "10"; */ +"10.title" = "漢語拼音+數字標調"; + +/* Class = "NSTextFieldCell"; title = "Bopomofo Keyboard Layout:"; ObjectID = "12"; */ +"12.title" = "注音鍵盤佈局:"; + +/* Class = "NSTextFieldCell"; title = "Show Candidate Phrase:"; ObjectID = "14"; */ +"14.title" = "用於顯示候選詞的游標定位:"; + +/* Class = "NSButtonCell"; title = "Before the cursor (like Hanin)"; ObjectID = "16"; */ +"16.title" = "游標前置(像松下漢音輸入法)"; + +/* Class = "NSButtonCell"; title = "After the cursor (like MS IME)"; ObjectID = "17"; */ +"17.title" = "游標後置(像微軟新注音)"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "18"; */ +"18.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "20"; */ +"20.title" = "Radio"; + +/* Class = "NSButtonCell"; title = "Horizontal"; ObjectID = "21"; */ +"21.title" = "橫向"; + +/* Class = "NSButtonCell"; title = "Vertical"; ObjectID = "22"; */ +"22.title" = "縱向"; + +/* Class = "NSTextFieldCell"; title = "Candidate List Style:"; ObjectID = "24"; */ +"24.title" = "候選詞窗格排版:"; + +/* Class = "NSTextFieldCell"; title = "Candidate Text Size:"; ObjectID = "29"; */ +"29.title" = "候選詞窗格字型大小:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "92"; */ +"92.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "12"; ObjectID = "93"; */ +"93.title" = "12"; + +/* Class = "NSMenuItem"; title = "14"; ObjectID = "94"; */ +"94.title" = "14"; + +/* Class = "NSMenuItem"; title = "16"; ObjectID = "95"; */ +"95.title" = "16"; + +/* Class = "NSMenuItem"; title = "18"; ObjectID = "96"; */ +"96.title" = "18"; + +/* Class = "NSMenuItem"; title = "24"; ObjectID = "98"; */ +"98.title" = "24"; + +/* Class = "NSMenuItem"; title = "32"; ObjectID = "99"; */ +"99.title" = "32"; + +/* Class = "NSMenuItem"; title = "64"; ObjectID = "100"; */ +"100.title" = "64"; + +/* Class = "NSMenuItem"; title = "96"; ObjectID = "101"; */ +"101.title" = "96"; + +/* Class = "NSButtonCell"; title = "Space key chooses candidate"; ObjectID = "110"; */ +"110.title" = "摁空格鍵以選取候選詞"; + +/* Class = "NSTextFieldCell"; title = "Alphanumeric Keyboard Layout:"; ObjectID = "126"; */ +"126.title" = "英數鍵盤佈局:"; + +/* Class = "NSMenu"; title = "OtherViews"; ObjectID = "128"; */ +"128.title" = "OtherViews"; + +/* Class = "NSMenuItem"; title = "IBM"; ObjectID = "137"; */ +"137.title" = "IBM"; + +/* Class = "NSTextFieldCell"; title = "Selection Keys:"; ObjectID = "FnD-oH-El5"; */ +"FnD-oH-El5.title" = "選字鍵:"; + +/* Class = "NSButtonCell"; title = "Check for updates automatically"; ObjectID = "Z9t-P0-BLF"; */ +"Z9t-P0-BLF.title" = "自動檢查軟體更新"; + +/* Class = "NSButtonCell"; title = "ESC key clears entire input buffer"; ObjectID = "f2j-xD-4xK"; */ +"f2j-xD-4xK.title" = "敲 ESC 鍵以清空整個輸入緩衝區"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[0] = "Item 1"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[0]" = "Item 1"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[1] = "Item 2"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[1]" = "Item 2"; + +/* Class = "NSComboBoxCell"; jQC-12-UuK.ibShadowedObjectValues[2] = "Item 3"; ObjectID = "jQC-12-UuK"; */ +"jQC-12-UuK.ibShadowedObjectValues[2]" = "Item 3"; diff --git a/Source/zh-Hant.lproj/preferences.xib b/Source/zh-Hant.lproj/preferences.xib deleted file mode 100644 index 37397ed0..00000000 --- a/Source/zh-Hant.lproj/preferences.xib +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Item 1 - Item 2 - Item 3 - - - - - - - - - - - - - - - - - - - - - - diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 3b62dbf6..c9317aeb 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -71,6 +71,14 @@ /* Begin PBXFileReference section */ 5B000FC1278495AD004F02AC /* SimpBopomofo.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SimpBopomofo.tiff; sourceTree = ""; }; 5B000FC2278495AD004F02AC /* SimpBopomofo@2x.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "SimpBopomofo@2x.tiff"; sourceTree = ""; }; + 5B054058278787710083EF4A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Source/en.lproj/preferences.strings; sourceTree = ""; }; + 5B42B63E27876FDC00BB9B9F /* UserOverrideModel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserOverrideModel.cpp; sourceTree = ""; }; + 5B42B63F27876FDC00BB9B9F /* UserOverrideModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserOverrideModel.h; sourceTree = ""; }; + 5B42B64127877D6500BB9B9F /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "Source/zh-Hans.lproj/preferences.strings"; sourceTree = ""; }; + 5B42B64227877D7700BB9B9F /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/zh-Hant.lproj/preferences.strings"; sourceTree = ""; }; + 5B58E87E278413E7003EA2AD /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = Source/en.lproj/MITLicense.txt; sourceTree = SOURCE_ROOT; }; + 5B58E880278413EF003EA2AD /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text; name = "zh-Hans"; path = "zh-Hans.lproj/MITLicense.txt"; sourceTree = ""; }; + 5B58E881278413F1003EA2AD /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text; name = "zh-Hant"; path = "zh-Hant.lproj/MITLicense.txt"; sourceTree = ""; }; 5B9781D32763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 5B9781D42763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = "zh-Hans"; path = "zh-Hans.lproj/License.rtf"; sourceTree = ""; }; 5B9781D52763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; @@ -78,7 +86,6 @@ 5B9781D72763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "Source/zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 5B9781D82763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "Source/zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; 5B9781D92763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.xib"; sourceTree = ""; }; - 5B9781DA2763850700897999 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "zh-Hans"; path = "Source/zh-Hans.lproj/preferences.xib"; sourceTree = ""; }; 5BC3FB82278492DE0022E99A /* data-chs.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "data-chs.txt"; sourceTree = ""; }; 6A0421A615FEF3F50061ED63 /* FastLM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FastLM.cpp; sourceTree = ""; }; 6A0421A715FEF3F50061ED63 /* FastLM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastLM.h; sourceTree = ""; }; @@ -160,7 +167,6 @@ 6A0D4F4B15FC0EE100ABF4B3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Source/en.lproj/Localizable.strings; sourceTree = ""; }; 6A0D4F5415FC0EF900ABF4B3 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; 6A0D4F5515FC0EF900ABF4B3 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; - 6A0D4F5615FC0EF900ABF4B3 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "zh-Hant"; path = "Source/zh-Hant.lproj/preferences.xib"; sourceTree = ""; }; 6A15B32421A51F2300B92CD3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 6A15B32521A51F2300B92CD3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 6A15B32721A51F2300B92CD3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Source/Base.lproj/preferences.xib; sourceTree = ""; }; @@ -692,9 +698,10 @@ 6A0D4F4E15FC0EE100ABF4B3 /* preferences.xib */ = { isa = PBXVariantGroup; children = ( - 6A0D4F5615FC0EF900ABF4B3 /* zh-Hant */, 6A15B32721A51F2300B92CD3 /* Base */, - 5B9781DA2763850700897999 /* zh-Hans */, + 5B42B64127877D6500BB9B9F /* zh-Hans */, + 5B42B64227877D7700BB9B9F /* zh-Hant */, + 5B054058278787710083EF4A /* en */, ); name = preferences.xib; path = ..;