!14 1.4.4 // Removing problematic upstream features.

Merge pull request !14 from ShikiSuen/upd/1.4.4
This commit is contained in:
ShikiSuen 2022-03-29 06:11:22 +00:00 committed by Gitee
commit f160ecc71c
17 changed files with 78 additions and 235 deletions

@ -1 +1 @@
Subproject commit 58fa2581c5b6819b3c2d029a11537b81442f1afc
Subproject commit fd7208e3ece1bf0ba6c128160dfdcac79e3451bd

View File

@ -176,7 +176,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelega
}
func applicationDidFinishLaunching(_ notification: Notification) {
mgrLangModel.setupDataModelValueConverter()
mgrLangModel.loadDataModels() //
mgrLangModel.loadUserPhrases()
mgrLangModel.loadUserPhraseReplacement()

View File

@ -231,8 +231,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot";
}
[self _walk];
if (mgrPrefs.selectPhraseAfterCursorAsCandidate &&
mgrPrefs.moveCursorAfterSelectingCandidate) {
if (mgrPrefs.moveCursorAfterSelectingCandidate) {
size_t nextPosition = 0;
for (auto node: _walkedNodes) {
if (nextPosition >= cursorIndex) {

View File

@ -19,15 +19,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
import Cocoa
@objc public class IME: NSObject {
// AppleKeyboardConverter 使 KeyParser
// ctlInputMethod
// modifier flags flags AppleKeyboardConverter
@objc static var isOptionPressed: Bool = false
@objc static var isShiftPressed: Bool = false
@objc static var isCapsLockOn: Bool = false
@objc static var isCommandPressed: Bool = false
@objc static var isNumericPad: Bool = false
@objc static var isFunction: Bool = false
// MARK: - Functions

View File

@ -63,33 +63,9 @@ class ctlInputMethod: IMKInputController {
// MARK: - Keyboard Layout Specifier
func getKeyLayoutFlagsCondition(_ event: NSEvent!) -> Bool {
event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(NSEvent.ModifierFlags(rawValue: ~(NSEvent.ModifierFlags.shift.rawValue))) ||
(event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.shift) && mgrPrefs.functionKeyKeyboardLayoutOverrideIncludeShiftKey)
}
@objc func setKeyLayout(isfunctionKeyboardLayout: Bool = false) {
@objc func setKeyLayout() {
let client = client().self as IMKTextInput
client.overrideKeyboard(withKeyboardNamed: isfunctionKeyboardLayout ? mgrPrefs.functionKeyboardLayout : mgrPrefs.basisKeyboardLayout)
}
func updateModifierFlags(_ event: NSEvent!) {
// modifier flags flags AppleKeyboardConverter
IME.isShiftPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.shift)
IME.isOptionPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.option)
IME.isCapsLockOn = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.capsLock)
IME.isCommandPressed = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command)
IME.isNumericPad = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.numericPad)
IME.isFunction = event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.function)
}
func resetModifierFlags() {
IME.isShiftPressed = false
IME.isOptionPressed = false
IME.isCapsLockOn = false
IME.isCommandPressed = false
IME.isNumericPad = false
IME.isFunction = false
client.overrideKeyboard(withKeyboardNamed: mgrPrefs.basisKeyboardLayout)
}
// MARK: - IMKInputController methods
@ -166,7 +142,7 @@ class ctlInputMethod: IMKInputController {
}
// NSMenu modified key
setKeyLayout(isfunctionKeyboardLayout: false)
setKeyLayout()
return menu
}
@ -176,7 +152,7 @@ class ctlInputMethod: IMKInputController {
UserDefaults.standard.synchronize()
// Override the keyboard layout to the basic one.
setKeyLayout(isfunctionKeyboardLayout: false)
setKeyLayout()
// reset the state
currentCandidateClient = nil
@ -205,7 +181,7 @@ class ctlInputMethod: IMKInputController {
mgrLangModel.loadDataModel(newInputMode)
// Remember to override the keyboard layout again -- treat this as an activate event.
setKeyLayout(isfunctionKeyboardLayout: false)
setKeyLayout()
if keyHandler.inputMode != newInputMode {
UserDefaults.standard.synchronize()
@ -226,20 +202,14 @@ class ctlInputMethod: IMKInputController {
}
override func handle(_ event: NSEvent!, client: Any!) -> Bool {
//
resetModifierFlags()
updateModifierFlags(event)
if mgrPrefs.functionKeyboardLayout != mgrPrefs.basisKeyboardLayout {
// flags使 KeyHandler
// flags
// event.type == .flagsChanged return false
// NSInternalInconsistencyException
if event.type == .flagsChanged {
setKeyLayout(isfunctionKeyboardLayout: getKeyLayoutFlagsCondition(event))
return false
}
}
// Enter
ctlInputMethod.areWeDeleting = event.modifierFlags.contains([.shift, .command])
@ -680,7 +650,7 @@ extension ctlInputMethod: KeyHandlerDelegate {
if !state.validToWrite {
return false
}
let InputModeReversed: InputMode = (ctlInputMethod.currentKeyHandler.inputMode == InputMode.imeModeCHT) ? InputMode.imeModeCHS : InputMode.imeModeCHT
let InputModeReversed: InputMode = (keyHandler.inputMode == InputMode.imeModeCHT) ? InputMode.imeModeCHS : InputMode.imeModeCHT
mgrLangModel.writeUserPhrase(state.userPhrase, inputMode: keyHandler.inputMode, areWeDuplicating: state.chkIfUserPhraseExists, areWeDeleting: ctlInputMethod.areWeDeleting)
mgrLangModel.writeUserPhrase(state.userPhraseConverted, inputMode: InputModeReversed, areWeDuplicating: false, areWeDeleting: ctlInputMethod.areWeDeleting)
return true

View File

@ -23,8 +23,6 @@ private let kIsDebugModeEnabled = "_DebugMode"
private let kCheckUpdateAutomatically = "CheckUpdateAutomatically"
private let kKeyboardLayoutPreference = "KeyboardLayout"
private let kBasisKeyboardLayoutPreference = "BasisKeyboardLayout"
private let kFunctionKeyKeyboardLayoutPreference = "FunctionKeyKeyboardLayout"
private let kFunctionKeyKeyboardLayoutOverrideIncludeShift = "FunctionKeyKeyboardLayoutOverrideIncludeShift"
private let kShowPageButtonsInCandidateWindow = "ShowPageButtonsInCandidateWindow"
private let kCandidateListTextSize = "CandidateListTextSize"
private let kAppleLanguagesPreferences = "AppleLanguages"
@ -50,8 +48,6 @@ private let kCandidateTextFontName = "CandidateTextFontName"
private let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName"
private let kCandidateKeys = "CandidateKeys"
private let kChineseConversionEngine = "ChineseConversionEngine"
private let kChineseConversionStyle = "ChineseConversionStyle"
private let kAssociatedPhrasesEnabled = "AssociatedPhrasesEnabled"
private let kPhraseReplacementEnabled = "PhraseReplacementEnabled"
@ -183,42 +179,12 @@ struct ComposingBufferSize {
}
}
@objc enum ChineseConversionEngine: Int {
case openCC
case vxHanConvert
var name: String {
switch (self) {
case .openCC:
return "OpenCC"
case .vxHanConvert:
return "VXHanConvert"
}
}
}
@objc enum ChineseConversionStyle: Int {
case output
case model
var name: String {
switch (self) {
case .output:
return "output"
case .model:
return "model"
}
}
}
// MARK: -
@objc public class mgrPrefs: NSObject {
static var allKeys:[String] {
[kIsDebugModeEnabled,
kKeyboardLayoutPreference,
kBasisKeyboardLayoutPreference,
kFunctionKeyKeyboardLayoutPreference,
kFunctionKeyKeyboardLayoutOverrideIncludeShift,
kShowPageButtonsInCandidateWindow,
kCandidateListTextSize,
kAppleLanguagesPreferences,
@ -243,8 +209,6 @@ struct ComposingBufferSize {
kUseSCPCTypingMode,
kMaxCandidateLength,
kShouldNotFartInLieuOfBeep,
kChineseConversionEngine,
kChineseConversionStyle,
kAssociatedPhrasesEnabled]
}
@ -365,12 +329,6 @@ struct ComposingBufferSize {
@UserDefault(key: kBasisKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.ZhuyinBopomofo")
@objc static var basisKeyboardLayout: String
@UserDefault(key: kFunctionKeyKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.ABC")
@objc static var functionKeyboardLayout: String
@UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false)
@objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool
@UserDefault(key: kShowPageButtonsInCandidateWindow, defaultValue: true)
@objc static var showPageButtonsInCandidateWindow: Bool

View File

@ -125,13 +125,6 @@ public:
/// If CNS11643 input is enabled or not.
bool cnsEnabled();
/// Enables or disables the external converter.
void setExternalConverterEnabled(bool enabled);
/// If the external converted is enabled or not.
bool externalConverterEnabled();
/// Sets a lambda to let the values of unigrams could be converted by it.
void setExternalConverter(std::function<std::string(std::string)> externalConverter);
const std::vector<std::string> associatedPhrasesForKey(const std::string& key);
bool hasAssociatedPhrasesForKey(const std::string& key);
@ -160,8 +153,6 @@ protected:
bool m_phraseReplacementEnabled;
bool m_cnsEnabled;
bool m_symbolEnabled;
bool m_externalConverterEnabled;
std::function<std::string(std::string)> m_externalConverter;
};
};

View File

@ -246,21 +246,6 @@ bool LMInstantiator::symbolEnabled()
return m_symbolEnabled;
}
void LMInstantiator::setExternalConverterEnabled(bool enabled)
{
m_externalConverterEnabled = enabled;
}
bool LMInstantiator::externalConverterEnabled()
{
return m_externalConverterEnabled;
}
void LMInstantiator::setExternalConverter(std::function<std::string(std::string)> externalConverter)
{
m_externalConverter = externalConverter;
}
const std::vector<Gramambular::Unigram> LMInstantiator::filterAndTransformUnigrams(const std::vector<Gramambular::Unigram> unigrams, const std::unordered_set<std::string>& excludedValues, std::unordered_set<std::string>& insertedValues)
{
std::vector<Gramambular::Unigram> results;
@ -280,10 +265,6 @@ const std::vector<Gramambular::Unigram> LMInstantiator::filterAndTransformUnigra
value = replacement;
}
}
if (m_externalConverterEnabled && m_externalConverter) {
std::string replacement = m_externalConverter(value);
value = replacement;
}
if (insertedValues.find(value) == insertedValues.end()) {
Gramambular::Unigram g;
g.keyValue.value = value;

View File

@ -28,7 +28,6 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)loadUserPhrases;
+ (void)loadUserAssociatedPhrases;
+ (void)loadUserPhraseReplacement;
+ (void)setupDataModelValueConverter;
+ (BOOL)checkIfUserLanguageModelFilesExist;
+ (BOOL)checkIfUserDataFolderExists;

View File

@ -134,32 +134,6 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing
gLangModelCHS.loadPhraseReplacementMap([[self phraseReplacementDataPath:imeModeCHS] UTF8String]);
}
+ (void)setupDataModelValueConverter
{
auto converter = [] (string input) {
// if (!mgrPrefs.chineseConversionEnabled) {
// return input;
// }
//
// if (mgrPrefs.chineseConversionStyle == 0) {
// return input;
// }
//
// NSString *text = [NSString stringWithUTF8String:input.c_str()];
// if (mgrPrefs.chineseConversionEngine == 1) {
// text = [VXHanConvert convertToKangXiFrom:text];
// }
// else {
// text = [OpenCCBridge convertToKangXi:text];
// }
// return string(text.UTF8String);
return input;
};
gLangModelCHT.setExternalConverter(converter);
gLangModelCHS.setExternalConverter(converter);
}
+ (BOOL)checkIfUserDataFolderExists
{
NSString *folderPath = [self dataFolderPath];
@ -244,24 +218,6 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing
// BOOL addLineBreakAtFront = NO;
NSString *path = areWeDeleting ? [self excludedPhrasesDataPath:mode] : [self userPhrasesDataPath:mode];
// if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
// NSError *error = nil;
// NSDictionary *attr = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:&error];
// unsigned long long fileSize = [attr fileSize];
// if (!error && fileSize) {
// NSFileHandle *readFile = [NSFileHandle fileHandleForReadingAtPath:path];
// if (readFile) {
// [readFile seekToFileOffset:fileSize - 1];
// NSData *data = [readFile readDataToEndOfFile];
// const void *bytes = [data bytes];
// if (*(char *)bytes != '\n') {
// addLineBreakAtFront = YES;
// }
// [readFile closeFile];
// }
// }
// }
NSMutableString *currentMarkedPhrase = [NSMutableString string];
// if (addLineBreakAtFront) {
// [currentMarkedPhrase appendString:@"\n"];

View File

@ -19,6 +19,7 @@
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<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"/>
@ -161,7 +162,7 @@
</connections>
</matrix>
<button verticalHuggingPriority="750" id="233">
<rect key="frame" x="169" y="25.5" width="245" height="17"/>
<rect key="frame" x="169" y="25" width="245" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Show page buttons in candidate list" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="shc-Nu-UsM">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
@ -214,7 +215,7 @@
</view>
</box>
<button translatesAutoresizingMaskIntoConstraints="NO" id="Fc2-qh-r1H">
<rect key="frame" x="26" y="12.5" width="204" height="17"/>
<rect key="frame" x="26" y="13" width="204" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="o6K-VN-uxe"/>
</constraints>
@ -233,7 +234,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Yaj-QY-7xV" userLabel="chkCNSSupport">
<rect key="frame" x="19" y="104.5" width="406" height="17"/>
<rect key="frame" x="19" y="105" width="406" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="KdE-Vd-Y50"/>
</constraints>
@ -247,7 +248,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="5IL-zZ-CL9" userLabel="chkTrad2KangXi">
<rect key="frame" x="19" y="83.5" width="406" height="16"/>
<rect key="frame" x="19" y="83" width="406" height="16"/>
<buttonCell key="cell" type="check" title="Auto-convert traditional Chinese glyphs to KangXi characters" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="BSK-bH-Gct">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -258,7 +259,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="h4r-Sp-LBI" userLabel="chkTrad2JISShinjitai">
<rect key="frame" x="19" y="62.5" width="406" height="16"/>
<rect key="frame" x="19" y="61" width="406" height="16"/>
<buttonCell key="cell" type="check" title="Auto-convert traditional Chinese glyphs to JIS Shinjitai characters" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="eia-1F-Do0">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -269,7 +270,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pYB-E5-4Nv">
<rect key="frame" x="19" y="41.5" width="406" height="16"/>
<rect key="frame" x="19" y="39" width="406" height="16"/>
<buttonCell key="cell" type="check" title="Stop farting (when typed phonetic combination is invalid, etc.)" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="62u-jY-BRh">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -297,7 +298,7 @@
</view>
</box>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mwD-Yz-AU9">
<rect key="frame" x="346" y="12.5" width="94" height="17"/>
<rect key="frame" x="346" y="13" width="94" height="16"/>
<buttonCell key="cell" type="check" title="Debug Mode" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" state="on" inset="2" id="sZx-18-8dO">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -328,17 +329,17 @@
</tabViewItem>
<tabViewItem label="Advanced" identifier="" id="xrE-8T-WKO">
<view key="view" id="bZr-iP-F6T">
<rect key="frame" x="10" y="33" width="463" height="418"/>
<rect key="frame" x="10" y="33" width="463" height="424"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<box title="Advanced Settings" translatesAutoresizingMaskIntoConstraints="NO" id="E1l-m8-xgb">
<rect key="frame" x="6" y="4" width="451" height="409"/>
<rect key="frame" x="6" y="8" width="451" height="411"/>
<view key="contentView" id="Zaa-dP-WdF">
<rect key="frame" x="3" y="3" width="445" height="391"/>
<rect key="frame" x="3" y="3" width="445" height="393"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField autoresizesSubviews="NO" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IpX-f7-rTL">
<rect key="frame" x="18" y="360" width="317" height="16"/>
<rect key="frame" x="18" y="362" width="317" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="0OB-uY-HxG"/>
</constraints>
@ -349,7 +350,7 @@
</textFieldCell>
</textField>
<comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uHU-aL-du7">
<rect key="frame" x="128" y="329" width="150" height="25"/>
<rect key="frame" x="128" y="331" width="150" height="25"/>
<constraints>
<constraint firstAttribute="width" constant="147" id="WdR-Sg-xvh"/>
</constraints>
@ -368,7 +369,7 @@
</connections>
</comboBox>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ETa-09-qWI">
<rect key="frame" x="31" y="334" width="91" height="15"/>
<rect key="frame" x="31" y="336" width="91" height="15"/>
<textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Selection Keys:" id="FnD-oH-El5">
<font key="font" metaFont="cellTitle"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -376,7 +377,7 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="13">
<rect key="frame" x="18" y="310" width="403" height="15"/>
<rect key="frame" x="18" y="312" width="403" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the cursor position where you want to list possible candidates." id="14">
<font key="font" metaFont="cellTitle"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -384,7 +385,7 @@
</textFieldCell>
</textField>
<matrix verticalHuggingPriority="751" tag="1" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="15">
<rect key="frame" x="33" y="264" width="402" height="38"/>
<rect key="frame" x="33" y="266" width="402" height="38"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="402" height="18"/>
<size key="intercellSpacing" width="4" height="2"/>
@ -409,7 +410,7 @@
</connections>
</matrix>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7z2-DD-c58">
<rect key="frame" x="33" y="240.5" width="392" height="17"/>
<rect key="frame" x="33" y="243" width="392" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="0iq-1M-a8l"/>
</constraints>
@ -419,11 +420,10 @@
</buttonCell>
<connections>
<binding destination="32" name="value" keyPath="values.MoveCursorAfterSelectingCandidate" id="BbO-T6-zh3"/>
<binding destination="32" name="enabled" keyPath="values.SelectPhraseAfterCursorAsCandidate" id="lfH-IT-XBO"/>
</connections>
</button>
<matrix verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n7q-ew-DYu">
<rect key="frame" x="33" y="172" width="386" height="38"/>
<rect key="frame" x="33" y="174" width="386" height="38"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="386" height="18"/>
<size key="intercellSpacing" width="4" height="2"/>
@ -448,7 +448,7 @@
</connections>
</matrix>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TMn-LX-3Ub">
<rect key="frame" x="18" y="217" width="369" height="15"/>
<rect key="frame" x="18" y="219" width="369" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Tab key in the candidate window." id="ueU-Rz-a1C">
<font key="font" metaFont="cellTitle"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -456,7 +456,7 @@
</textFieldCell>
</textField>
<matrix verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YkJ-lr-EP6">
<rect key="frame" x="33" y="104" width="386" height="38"/>
<rect key="frame" x="33" y="106" width="386" height="38"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="386" height="18"/>
<size key="intercellSpacing" width="4" height="2"/>
@ -481,7 +481,7 @@
</connections>
</matrix>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="J0f-Aw-dxC">
<rect key="frame" x="18" y="149" width="383" height="15"/>
<rect key="frame" x="18" y="151" width="383" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Space key in the candidate window." id="Pg5-G9-pY5">
<font key="font" metaFont="cellTitle"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -489,7 +489,7 @@
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bE0-Lq-Pj7">
<rect key="frame" x="19" y="57.5" width="266" height="17"/>
<rect key="frame" x="19" y="59" width="266" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="pOO-rh-Jhh"/>
</constraints>
@ -502,7 +502,7 @@
</connections>
</button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="109">
<rect key="frame" x="19" y="79.5" width="285" height="16"/>
<rect key="frame" x="19" y="81" width="285" height="16"/>
<buttonCell key="cell" type="check" title="Enable Space key for calling candidate window" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" state="on" inset="2" id="110">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -512,7 +512,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mzw-F2-aAQ">
<rect key="frame" x="19" y="36.5" width="314" height="16"/>
<rect key="frame" x="19" y="37" width="314" height="16"/>
<buttonCell key="cell" type="check" title="Emulating select-candidate-per-character mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="ArK-Vk-OoT">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
@ -585,7 +585,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="p7V-IN-OTr">
<rect key="frame" x="19" y="356.5" width="336" height="17"/>
<rect key="frame" x="19" y="356" width="336" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="8eX-Tw-Erk"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="234" id="yhP-XF-CQj"/>
@ -599,7 +599,7 @@
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="O4B-Z2-XYi">
<rect key="frame" x="19" y="334.5" width="406" height="17"/>
<rect key="frame" x="19" y="334" width="406" height="17"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="234" id="b55-tE-4Xz"/>
<constraint firstAttribute="height" constant="16" id="xK8-Au-QSC"/>
@ -778,6 +778,5 @@
</view>
<point key="canvasLocation" x="161.5" y="79"/>
</window>
<userDefaultsController representsSharedInstance="YES" id="32"/>
</objects>
</document>

View File

@ -144,7 +144,7 @@
"RQ6-MS-m4C.title" = "お好きなるキーボード配列をお選びください。";
/* Class = "NSButtonCell"; title = "Push the cursor to the front of the phrase after selection"; ObjectID = "RUG-ls-KyA"; */
"RUG-ls-KyA.title" = "候補選択の直後、すぐカーソルを単語の後ろに移す";
"RUG-ls-KyA.title" = "候補選択の直後、すぐカーソルを単語の向こうに推す";
/* Class = "NSMenuItem"; title = "Traditional Chinese"; ObjectID = "TXr-FF-ehw"; */
"TXr-FF-ehw.title" = "繁体中国語";

View File

@ -30,10 +30,10 @@
"14.title" = "用以触发选字的光标相对位置:";
/* Class = "NSButtonCell"; title = "Cursor to the front of the phrase (like Matsushita Hanin IME)"; ObjectID = "16"; */
"16.title" = "光标于词语前方 // 松下汉音风格";
"16.title" = "光标于词语前方 // 松下汉音风格";
/* Class = "NSButtonCell"; title = "Cursor to the rear of the phrase (like MS New-Phonetic IME)"; ObjectID = "17"; */
"17.title" = "光标于词语后方 // 微软新注音风格";
"17.title" = "光标于词语后方 // 微软新注音风格";
/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "18"; */
"18.title" = "Radio";

View File

@ -30,10 +30,10 @@
"14.title" = "用以觸發選字的游標相對位置:";
/* Class = "NSButtonCell"; title = "Cursor to the front of the phrase (like Matsushita Hanin IME)"; ObjectID = "16"; */
"16.title" = "游標於詞語前方 // 松下漢音風格";
"16.title" = "游標於詞語前方 // 松下漢音風格";
/* Class = "NSButtonCell"; title = "Cursor to the rear of the phrase (like MS New-Phonetic IME)"; ObjectID = "17"; */
"17.title" = "游標於詞語後方 // 微軟新注音風格";
"17.title" = "游標於詞語後方 // 微軟新注音風格";
/* Class = "NSButtonCell"; title = "Radio"; ObjectID = "18"; */
"18.title" = "Radio";

View File

@ -7,8 +7,8 @@
<key>UpdateInfoSite</key>
<string>https://gitee.com/vChewing/vChewing-macOS/releases</string>
<key>CFBundleVersion</key>
<string>1943</string>
<string>1944</string>
<key>CFBundleShortVersionString</key>
<string>1.4.3</string>
<string>1.4.4</string>
</dict>
</plist>

View File

@ -726,7 +726,7 @@
<key>USE_HFS+_COMPRESSION</key>
<false/>
<key>VERSION</key>
<string>1.4.3</string>
<string>1.4.4</string>
</dict>
<key>TYPE</key>
<integer>0</integer>
@ -941,11 +941,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Simplified Chinese</string>
<string>Traditional Chinese</string>
<key>VALUE</key>
<dict>
<key>PATH</key>
<string>Installer/pkgTextWarning-CHS.txt</string>
<string>Installer/pkgTextWarning-CHT.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
@ -963,11 +963,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Traditional Chinese</string>
<string>Simplified Chinese</string>
<key>VALUE</key>
<dict>
<key>PATH</key>
<string>Installer/pkgTextWarning-CHT.txt</string>
<string>Installer/pkgTextWarning-CHS.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
@ -991,11 +991,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Simplified Chinese</string>
<string>Traditional Chinese</string>
<key>VALUE</key>
<dict>
<key>PATH</key>
<string>LICENSE-CHS.txt</string>
<string>LICENSE-CHT.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
@ -1013,11 +1013,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Traditional Chinese</string>
<string>Simplified Chinese</string>
<key>VALUE</key>
<dict>
<key>PATH</key>
<string>LICENSE-CHT.txt</string>
<string>LICENSE-CHS.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
@ -1048,9 +1048,9 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Traditional Chinese</string>
<string>Simplified Chinese</string>
<key>VALUE</key>
<string>威注音入法</string>
<string>威注音入法</string>
</dict>
<dict>
<key>LANGUAGE</key>
@ -1060,9 +1060,9 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Simplified Chinese</string>
<string>Traditional Chinese</string>
<key>VALUE</key>
<string>威注音入法</string>
<string>威注音入法</string>
</dict>
</array>
</dict>
@ -1099,11 +1099,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Traditional Chinese</string>
<string>Simplified Chinese</string>
<key>SECONDARY_VALUE</key>
<string>至少 macOS 10.11.5 方可滿足威注音對系統內的萬國碼版本支援的需要。</string>
<string>至少 macOS 10.11.5 方可满足威注音对系统内的万国码版本支援的需要。</string>
<key>VALUE</key>
<string>作業系統版本太舊</string>
<string>作业系统版本太旧</string>
</dict>
<dict>
<key>LANGUAGE</key>
@ -1115,11 +1115,11 @@
</dict>
<dict>
<key>LANGUAGE</key>
<string>Simplified Chinese</string>
<string>Traditional Chinese</string>
<key>SECONDARY_VALUE</key>
<string>至少 macOS 10.11.5 方可满足威注音对系统内的万国码版本支援的需要。</string>
<string>至少 macOS 10.11.5 方可滿足威注音對系統內的萬國碼版本支援的需要。</string>
<key>VALUE</key>
<string>作业系统版本太旧</string>
<string>作業系統版本太舊</string>
</dict>
</array>
<key>NAME</key>

View File

@ -1183,7 +1183,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
@ -1206,7 +1206,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1239,7 +1239,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
@ -1258,7 +1258,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor;
@ -1373,7 +1373,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -1408,7 +1408,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1441,7 +1441,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = "";
@ -1471,7 +1471,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -1555,7 +1555,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEVELOPMENT_TEAM = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
@ -1580,7 +1580,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
@ -1608,7 +1608,7 @@
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1943;
CURRENT_PROJECT_VERSION = 1944;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
GCC_C_LANGUAGE_STANDARD = gnu99;
@ -1628,7 +1628,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.11.5;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.4;
PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";