SessionCtl // Add switchInputMode() with its menu item.

This commit is contained in:
ShikiSuen 2023-05-01 09:51:24 +08:00
parent 8d9d8e1b23
commit 5bdddc069d
16 changed files with 119 additions and 19 deletions

View File

@ -86,4 +86,5 @@ public protocol PrefMgrProtocol {
var usingHotKeyCurrencyNumerals: Bool { get set } var usingHotKeyCurrencyNumerals: Bool { get set }
var usingHotKeyCassette: Bool { get set } var usingHotKeyCassette: Bool { get set }
var usingHotKeyRevLookup: Bool { get set } var usingHotKeyRevLookup: Bool { get set }
var usingHotKeyInputMode: Bool { get set }
} }

View File

@ -94,6 +94,7 @@ public enum UserDef: String, CaseIterable {
case kUsingHotKeyCurrencyNumerals = "UsingHotKeyCurrencyNumerals" case kUsingHotKeyCurrencyNumerals = "UsingHotKeyCurrencyNumerals"
case kUsingHotKeyCassette = "UsingHotKeyCassette" case kUsingHotKeyCassette = "UsingHotKeyCassette"
case kUsingHotKeyRevLookup = "UsingHotKeyRevLookup" case kUsingHotKeyRevLookup = "UsingHotKeyRevLookup"
case kUsingHotKeyInputMode = "UsingHotKeyInputMode"
public static func resetAll() { public static func resetAll() {
UserDef.allCases.forEach { UserDef.allCases.forEach {

View File

@ -358,4 +358,7 @@ public class PrefMgr: PrefMgrProtocol {
@AppProperty(key: UserDef.kUsingHotKeyRevLookup.rawValue, defaultValue: true) @AppProperty(key: UserDef.kUsingHotKeyRevLookup.rawValue, defaultValue: true)
public var usingHotKeyRevLookup: Bool public var usingHotKeyRevLookup: Bool
@AppProperty(key: UserDef.kUsingHotKeyInputMode.rawValue, defaultValue: true)
public var usingHotKeyInputMode: Bool
} }

View File

@ -9,6 +9,7 @@
import CandidateWindow import CandidateWindow
import CocoaExtension import CocoaExtension
import IMKUtils import IMKUtils
import NotifierUI
import PopupCompositionBuffer import PopupCompositionBuffer
import Shared import Shared
import ShiftKeyUpChecker import ShiftKeyUpChecker
@ -120,6 +121,15 @@ public class SessionCtl: IMKInputController {
} }
} }
private let sharedAlertForInputModeToggling: NSAlert = {
let alert = NSAlert()
alert.alertStyle = .informational
alert.messageText = "Target Input Mode Activation Required".localized
alert.informativeText = "You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to.".localized
alert.addButton(withTitle: "OK".localized)
return alert
}()
public func updateVerticalTypingStatus() { public func updateVerticalTypingStatus() {
guard let client = client() else { guard let client = client() else {
isVerticalTyping = false isVerticalTyping = false
@ -322,6 +332,38 @@ public extension SessionCtl {
super.setValue(value, forTag: tag, client: sender) super.setValue(value, forTag: tag, client: sender)
} }
///
@objc func switchInputMode(_: Any? = nil) {
guard let client: IMKTextInput = client() else { return }
let nowMode = IMEApp.currentInputMode
guard nowMode != .imeModeNULL else { return }
modeCheck: for neta in TISInputSource.allRegisteredInstancesOfThisInputMethod {
guard !neta.isActivated else { continue }
osCheck: if #unavailable(macOS 12) {
neta.activate()
if !neta.isActivated {
break osCheck
}
break modeCheck
}
let result = sharedAlertForInputModeToggling.runModal()
NSApp.activate(ignoringOtherApps: true)
if result == NSApplication.ModalResponse.alertFirstButtonReturn {
neta.activate()
}
return
}
let status = "NotificationSwitchRevolver".localized
DispatchQueue.main.async {
if LMMgr.lmCHT.isCoreLMLoaded, LMMgr.lmCHS.isCoreLMLoaded {
Notifier.notify(
message: nowMode.reversed.localizedDescription + "\n" + status
)
}
}
client.selectMode(nowMode.reversed.rawValue)
}
/// ///
func syncBaseLMPrefs() { func syncBaseLMPrefs() {
LMMgr.currentLM.isPhraseReplacementEnabled = PrefMgr.shared.phraseReplacementEnabled LMMgr.currentLM.isPhraseReplacementEnabled = PrefMgr.shared.phraseReplacementEnabled

View File

@ -27,6 +27,15 @@ extension SessionCtl {
override public func menu() -> NSMenu! { override public func menu() -> NSMenu! {
let menu = NSMenu(title: "Input Method Menu") let menu = NSMenu(title: "Input Method Menu")
let switchInputModeItem = menu.addItem(
withTitle: String(
format: "Switch to %@ Input Mode".localized,
IMEApp.currentInputMode.reversed.localizedDescription
),
action: #selector(switchInputMode(_:)), keyEquivalent: PrefMgr.shared.usingHotKeyInputMode ? "D" : ""
)
switchInputModeItem.keyEquivalentModifierMask = [.command, .control]
let useSCPCTypingModeItem = menu.addItem( let useSCPCTypingModeItem = menu.addItem(
withTitle: "Per-Char Select Mode".localized, withTitle: "Per-Char Select Mode".localized,
action: #selector(toggleSCPCTypingMode(_:)), keyEquivalent: PrefMgr.shared.usingHotKeySCPC ? "P" : "" action: #selector(toggleSCPCTypingMode(_:)), keyEquivalent: PrefMgr.shared.usingHotKeySCPC ? "P" : ""
@ -155,8 +164,6 @@ extension SessionCtl {
) )
revLookupMenuItem.keyEquivalentModifierMask = [.command, .control] revLookupMenuItem.keyEquivalentModifierMask = [.command, .control]
menu.addItem(NSMenuItem.separator()) // ---------------------
menu.addItem( menu.addItem(
withTitle: "Optimize Memorized Phrases".localized, withTitle: "Optimize Memorized Phrases".localized,
action: #selector(removeUnigramsFromUOM(_:)), keyEquivalent: "" action: #selector(removeUnigramsFromUOM(_:)), keyEquivalent: ""

View File

@ -169,6 +169,9 @@ private struct VwrPrefPaneKeyboard_KeyboardShortcuts: View {
@Backport.AppStorage(wrappedValue: true, UserDef.kUsingHotKeyRevLookup.rawValue) @Backport.AppStorage(wrappedValue: true, UserDef.kUsingHotKeyRevLookup.rawValue)
private var usingHotKeyRevLookup: Bool private var usingHotKeyRevLookup: Bool
@Backport.AppStorage(wrappedValue: true, UserDef.kUsingHotKeyInputMode.rawValue)
private var usingHotKeyInputMode: Bool
// MARK: - Main View // MARK: - Main View
var body: some View { var body: some View {
@ -212,6 +215,10 @@ private struct VwrPrefPaneKeyboard_KeyboardShortcuts: View {
LocalizedStringKey("CIN Cassette Mode"), LocalizedStringKey("CIN Cassette Mode"),
isOn: $usingHotKeyCassette isOn: $usingHotKeyCassette
) )
Toggle(
LocalizedStringKey("CHS / CHT Input Mode Switch"),
isOn: $usingHotKeyInputMode
)
} }
} }
} }

View File

@ -1,4 +1,8 @@
"vChewing" = "vChewing"; "vChewing" = "vChewing";
"CHS / CHT Input Mode Switch" = "CHS / CHT Input Mode Switch";
"Switch to %@ Input Mode" = "Switch to %@ Input Mode";
"Target Input Mode Activation Required" = "Target Input Mode Activation Required";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to.";
"IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments."; "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments.";
"Do you want to enable the popup composition buffer for this client?" = "Do you want to enable the popup composition buffer for this client?"; "Do you want to enable the popup composition buffer for this client?" = "Do you want to enable the popup composition buffer for this client?";
"Some client apps may have different compatibility issues in IMKTextInput implementation." = "Some client apps may have different compatibility issues in IMKTextInput implementation."; "Some client apps may have different compatibility issues in IMKTextInput implementation." = "Some client apps may have different compatibility issues in IMKTextInput implementation.";

View File

@ -1,4 +1,8 @@
"vChewing" = "vChewing"; "vChewing" = "vChewing";
"CHS / CHT Input Mode Switch" = "CHS / CHT Input Mode Switch";
"Switch to %@ Input Mode" = "Switch to %@ Input Mode";
"Target Input Mode Activation Required" = "Target Input Mode Activation Required";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to.";
"IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments."; "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments.";
"Do you want to enable the popup composition buffer for this client?" = "Do you want to enable the popup composition buffer for this client?"; "Do you want to enable the popup composition buffer for this client?" = "Do you want to enable the popup composition buffer for this client?";
"Some client apps may have different compatibility issues in IMKTextInput implementation." = "Some client apps may have different compatibility issues in IMKTextInput implementation."; "Some client apps may have different compatibility issues in IMKTextInput implementation." = "Some client apps may have different compatibility issues in IMKTextInput implementation.";

View File

@ -1,4 +1,8 @@
"vChewing" = "威注音入力アプリ"; "vChewing" = "威注音入力アプリ";
"CHS / CHT Input Mode Switch" = "簡体・繁体中国語入力の切り替え";
"Switch to %@ Input Mode" = "%@入力モードに切り替え";
"Target Input Mode Activation Required" = "関連の入力ソースの追加が必要";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "ご希望の入力モードのご利用の前に、それに対応するの入力ソースの追加が必要である。これからはシステム環境設定の該当ページへ案内します。";
"IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 文字候補ウィンドウの利用できるようのために、システム内部の必要のある API の強引的アクセスが必要ですが、前回のその利用で威注音入力アプリが崩れました。故に今は IMK 文字候補ウィンドウを OFF にしました。IMK 文字候補ウィンドウはあくまで実験的な機能として提供していたため、業務用にはお勧めできません。"; "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 文字候補ウィンドウの利用できるようのために、システム内部の必要のある API の強引的アクセスが必要ですが、前回のその利用で威注音入力アプリが崩れました。故に今は IMK 文字候補ウィンドウを OFF にしました。IMK 文字候補ウィンドウはあくまで実験的な機能として提供していたため、業務用にはお勧めできません。";
"Do you want to enable the popup composition buffer for this client?" = "この客体アプリに「吹き出し入力緩衝列ウィンドウ」を起用しますか?"; "Do you want to enable the popup composition buffer for this client?" = "この客体アプリに「吹き出し入力緩衝列ウィンドウ」を起用しますか?";
"Some client apps may have different compatibility issues in IMKTextInput implementation." = "それぞれの客体アプリには、それぞれの IMKTextInput 不具合はあるかもしれません。"; "Some client apps may have different compatibility issues in IMKTextInput implementation." = "それぞれの客体アプリには、それぞれの IMKTextInput 不具合はあるかもしれません。";

View File

@ -1,4 +1,8 @@
"vChewing" = "威注音输入法"; "vChewing" = "威注音输入法";
"CHS / CHT Input Mode Switch" = "简体/繁体中文输入模式切换";
"Switch to %@ Input Mode" = "切换至%@输入模式";
"Target Input Mode Activation Required" = "得启用对应的「輸入法」";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "若要使用您想切换到的输入模式,您必须得先在系统偏好设定内启用对应的「輸入法/输入源」。接下来将会弹出对应的系统偏好设定画面。";
"IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 选字窗在最近一次存取被强制曝露的必需 API 时令输入法崩溃,所以被自动停用。请勿在生产力场合使用该实验型功能。"; "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 选字窗在最近一次存取被强制曝露的必需 API 时令输入法崩溃,所以被自动停用。请勿在生产力场合使用该实验型功能。";
"Do you want to enable the popup composition buffer for this client?" = "您要對該客體啟用浮動組字窗嗎?"; "Do you want to enable the popup composition buffer for this client?" = "您要對該客體啟用浮動組字窗嗎?";
"Some client apps may have different compatibility issues in IMKTextInput implementation." = "有些客體應用可能會有不同的 IMKTextInput 實作相容問題。"; "Some client apps may have different compatibility issues in IMKTextInput implementation." = "有些客體應用可能會有不同的 IMKTextInput 實作相容問題。";

View File

@ -1,4 +1,8 @@
"vChewing" = "威注音輸入法"; "vChewing" = "威注音輸入法";
"CHS / CHT Input Mode Switch" = "簡體/繁體中文輸入模式切換";
"Switch to %@ Input Mode" = "切換至%@輸入模式";
"Target Input Mode Activation Required" = "得啟用對應的「輸入方式」";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "若要使用您想切換到的輸入模式,您必須得先在系統偏好設定內啟用對應的「輸入方式」。接下來將會彈出對應的系統偏好設定畫面。";
"IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 選字窗在最近一次存取被強制曝露的必需 API 時令輸入法崩潰,所以被自動停用。請勿在生產力場合使用該實驗型功能。"; "IMK Candidate Window has been automatically disabled due to its recent crash with force-exposed necessary internal APIs. As an experimental feature, we advise against using IMK Candidate Window in productive environments." = "IMK 選字窗在最近一次存取被強制曝露的必需 API 時令輸入法崩潰,所以被自動停用。請勿在生產力場合使用該實驗型功能。";
"Do you want to enable the popup composition buffer for this client?" = "您要对该客体启用浮动组字窗吗?"; "Do you want to enable the popup composition buffer for this client?" = "您要对该客体启用浮动组字窗吗?";
"Some client apps may have different compatibility issues in IMKTextInput implementation." = "有些客体应用可能会有不同的 IMKTextInput 实作相容问题。"; "Some client apps may have different compatibility issues in IMKTextInput implementation." = "有些客体应用可能会有不同的 IMKTextInput 实作相容问题。";

View File

@ -2137,7 +2137,7 @@ DQ
</customSpacing> </customSpacing>
</stackView> </stackView>
<stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="gwA-XL-zVB"> <stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="gwA-XL-zVB">
<rect key="frame" x="0.0" y="0.0" width="394" height="123"/> <rect key="frame" x="0.0" y="0.0" width="396" height="123"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Md1-t7-hU4"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Md1-t7-hU4">
<rect key="frame" x="-2" y="108" width="125" height="15"/> <rect key="frame" x="-2" y="108" width="125" height="15"/>
@ -2148,7 +2148,7 @@ DQ
</textFieldCell> </textFieldCell>
</textField> </textField>
<stackView distribution="fill" orientation="horizontal" alignment="top" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="9gt-7a-9Z9"> <stackView distribution="fill" orientation="horizontal" alignment="top" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="9gt-7a-9Z9">
<rect key="frame" x="0.0" y="0.0" width="394" height="100"/> <rect key="frame" x="0.0" y="0.0" width="396" height="100"/>
<subviews> <subviews>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="j6Y-Nb-nco"> <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="j6Y-Nb-nco">
<rect key="frame" x="0.0" y="0.0" width="186" height="100"/> <rect key="frame" x="0.0" y="0.0" width="186" height="100"/>
@ -2235,10 +2235,10 @@ DQ
</customSpacing> </customSpacing>
</stackView> </stackView>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="xUN-xX-K7e"> <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" translatesAutoresizingMaskIntoConstraints="NO" id="xUN-xX-K7e">
<rect key="frame" x="206" y="21" width="188" height="79"/> <rect key="frame" x="206" y="0.0" width="190" height="100"/>
<subviews> <subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aBy-qb-ZL5" userLabel="UsingHotKeyHalfWidthASCII"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aBy-qb-ZL5" userLabel="UsingHotKeyHalfWidthASCII">
<rect key="frame" x="-1" y="62.5" width="189" height="17"/> <rect key="frame" x="-1" y="83.5" width="189" height="17"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="16" id="9gu-Gq-Bpc"/> <constraint firstAttribute="height" constant="16" id="9gu-Gq-Bpc"/>
</constraints> </constraints>
@ -2251,7 +2251,7 @@ DQ
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JvA-GK-VEW" userLabel="CurrencyNumerals"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JvA-GK-VEW" userLabel="CurrencyNumerals">
<rect key="frame" x="-1" y="41.5" width="167" height="17"/> <rect key="frame" x="-1" y="62.5" width="167" height="17"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="16" id="6EL-3G-s7z"/> <constraint firstAttribute="height" constant="16" id="6EL-3G-s7z"/>
</constraints> </constraints>
@ -2264,11 +2264,11 @@ DQ
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zZA-X1-GCy" userLabel="UsingHotKeyCassette"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zZA-X1-GCy" userLabel="UsingHotKeyCassette">
<rect key="frame" x="-1" y="20.5" width="131" height="17"/> <rect key="frame" x="-1" y="41.5" width="131" height="17"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="16" id="D36-2Y-mX5"/> <constraint firstAttribute="height" constant="16" id="D36-2Y-mX5"/>
</constraints> </constraints>
<buttonCell key="cell" type="check" title="CIN Cassette Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="1ll-Jn-OD5"> <buttonCell key="cell" type="check" title="CIN Cassette Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="xibUsingHotKeyCassette">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/> <font key="font" metaFont="cellTitle"/>
</buttonCell> </buttonCell>
@ -2277,11 +2277,11 @@ DQ
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="g3L-S4-NBx" userLabel="UsingHotKeyCassette"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="g3L-S4-NBx" userLabel="UsingHotKeyCassette">
<rect key="frame" x="-1" y="-0.5" width="184" height="17"/> <rect key="frame" x="-1" y="20.5" width="184" height="17"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="16" id="MlY-Pc-flb"/> <constraint firstAttribute="height" constant="16" id="MlY-Pc-flb"/>
</constraints> </constraints>
<buttonCell key="cell" type="check" title="Reverse Lookup (Phonabets)" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="1Pn-EV-mui"> <buttonCell key="cell" type="check" title="Reverse Lookup (Phonabets)" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="xibUsingHotKeyRevLookup">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/> <font key="font" metaFont="cellTitle"/>
</buttonCell> </buttonCell>
@ -2289,18 +2289,33 @@ DQ
<binding destination="32" name="value" keyPath="values.UsingHotKeyRevLookup" id="y9C-ob-Mw2"/> <binding destination="32" name="value" keyPath="values.UsingHotKeyRevLookup" id="y9C-ob-Mw2"/>
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SAU-IA-cdf" userLabel="UsingHotKeyCassette">
<rect key="frame" x="-1" y="-0.5" width="191" height="17"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="aIj-Ga-hmJ"/>
</constraints>
<buttonCell key="cell" type="check" title="CHS / CHT Input Mode Switch" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="xibUsingHotKeyInputMode">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
<connections>
<binding destination="32" name="value" keyPath="values.UsingHotKeyInputMode" id="C0X-mL-WNo"/>
</connections>
</button>
</subviews> </subviews>
<visibilityPriorities> <visibilityPriorities>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/>
</visibilityPriorities> </visibilityPriorities>
<customSpacing> <customSpacing>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/>
</customSpacing> </customSpacing>
</stackView> </stackView>
</subviews> </subviews>

View File

@ -12,8 +12,6 @@
"17.title" = "Cursor at the rear of the phrase (like Microsoft New Phonetic)"; "17.title" = "Cursor at the rear of the phrase (like Microsoft New Phonetic)";
"18.title" = "Radio"; "18.title" = "Radio";
"1AW-xf-c2f.label" = "Keyboard"; "1AW-xf-c2f.label" = "Keyboard";
"1ll-Jn-OD5.title" = "CIN Cassette Mode";
"1Pn-EV-mui.title" = "Reverse Lookup (Phonabets)";
"20.title" = "Radio"; "20.title" = "Radio";
"21.title" = "Horizontal"; "21.title" = "Horizontal";
"22.title" = "Vertical"; "22.title" = "Vertical";
@ -134,10 +132,13 @@
"xibOutputSettings.title" = "Output Settings"; "xibOutputSettings.title" = "Output Settings";
"xibUsingCurrencyNumerals.title" = "Currency Numeral Output"; "xibUsingCurrencyNumerals.title" = "Currency Numeral Output";
"xibUsingHotKeyAssociates.title" = "Per-Char Associated Phrases"; "xibUsingHotKeyAssociates.title" = "Per-Char Associated Phrases";
"xibUsingHotKeyCassette.title" = "CIN Cassette Mode";
"xibUsingHotKeyCNS.title" = "CNS11643 Mode"; "xibUsingHotKeyCNS.title" = "CNS11643 Mode";
"xibUsingHotKeyHalfWidthASCII.title" = "Half-Width Punctuation Mode"; "xibUsingHotKeyHalfWidthASCII.title" = "Half-Width Punctuation Mode";
"xibUsingHotKeyInputMode.title" = "CHS / CHT Input Mode Switch";
"xibUsingHotKeyJIS.title" = "JIS Shinjitai Output"; "xibUsingHotKeyJIS.title" = "JIS Shinjitai Output";
"xibUsingHotKeyKangXi.title" = "Force KangXi Writing"; "xibUsingHotKeyKangXi.title" = "Force KangXi Writing";
"xibUsingHotKeyRevLookup.title" = "Reverse Lookup (Phonabets)";
"xibUsingHotKeySCPC.title" = "Per-Char Select Mode"; "xibUsingHotKeySCPC.title" = "Per-Char Select Mode";
"xjP-r7-GaK.title" = "Dachen 26 (libChewing)"; "xjP-r7-GaK.title" = "Dachen 26 (libChewing)";
"XqL-rf-X6d.title" = "Space to +revolve pages, Shift+Space to +revolve candidates"; "XqL-rf-X6d.title" = "Space to +revolve pages, Shift+Space to +revolve candidates";

View File

@ -12,8 +12,6 @@
"17.title" = "単語の後で // Microsoft 新注音入力のやり方"; "17.title" = "単語の後で // Microsoft 新注音入力のやり方";
"18.title" = "Radio"; "18.title" = "Radio";
"1AW-xf-c2f.label" = "キーボード"; "1AW-xf-c2f.label" = "キーボード";
"1ll-Jn-OD5.title" = "CIN カセットモード";
"1Pn-EV-mui.title" = "注音音読逆引参照";
"20.title" = "Radio"; "20.title" = "Radio";
"21.title" = "横型陳列"; "21.title" = "横型陳列";
"22.title" = "縦型陳列"; "22.title" = "縦型陳列";
@ -134,10 +132,13 @@
"xibOutputSettings.title" = "出力設定"; "xibOutputSettings.title" = "出力設定";
"xibUsingCurrencyNumerals.title" = "数字大字変換"; "xibUsingCurrencyNumerals.title" = "数字大字変換";
"xibUsingHotKeyAssociates.title" = "全候補入力で連想語彙"; "xibUsingHotKeyAssociates.title" = "全候補入力で連想語彙";
"xibUsingHotKeyCassette.title" = "CIN カセットモード";
"xibUsingHotKeyCNS.title" = "全字庫モード"; "xibUsingHotKeyCNS.title" = "全字庫モード";
"xibUsingHotKeyHalfWidthASCII.title" = "半角句読モード"; "xibUsingHotKeyHalfWidthASCII.title" = "半角句読モード";
"xibUsingHotKeyInputMode.title" = "簡体・繁体中国語入力の切り替え";
"xibUsingHotKeyJIS.title" = "JIS 新字体モード"; "xibUsingHotKeyJIS.title" = "JIS 新字体モード";
"xibUsingHotKeyKangXi.title" = "康熙文字変換モード"; "xibUsingHotKeyKangXi.title" = "康熙文字変換モード";
"xibUsingHotKeyRevLookup.title" = "注音音読逆引参照";
"xibUsingHotKeySCPC.title" = "全候補入力モード"; "xibUsingHotKeySCPC.title" = "全候補入力モード";
"xjP-r7-GaK.title" = "酷音大千 26 キー配列"; "xjP-r7-GaK.title" = "酷音大千 26 キー配列";
"XqL-rf-X6d.title" = "Space で次のページ、Shift+Space で次の候補文字を"; "XqL-rf-X6d.title" = "Space で次のページ、Shift+Space で次の候補文字を";

View File

@ -12,8 +12,6 @@
"17.title" = "光标置于词语后方 // Windows 微软新注音风格"; "17.title" = "光标置于词语后方 // Windows 微软新注音风格";
"18.title" = "Radio"; "18.title" = "Radio";
"1AW-xf-c2f.label" = "键盘"; "1AW-xf-c2f.label" = "键盘";
"1ll-Jn-OD5.title" = "CIN 磁带模式";
"1Pn-EV-mui.title" = "注音反查";
"20.title" = "Radio"; "20.title" = "Radio";
"21.title" = "横向布局"; "21.title" = "横向布局";
"22.title" = "纵向布局"; "22.title" = "纵向布局";
@ -134,10 +132,13 @@
"xibOutputSettings.title" = "输出设定"; "xibOutputSettings.title" = "输出设定";
"xibUsingCurrencyNumerals.title" = "大写汉字数字输出"; "xibUsingCurrencyNumerals.title" = "大写汉字数字输出";
"xibUsingHotKeyAssociates.title" = "逐字选字联想模式"; "xibUsingHotKeyAssociates.title" = "逐字选字联想模式";
"xibUsingHotKeyCassette.title" = "CIN 磁带模式";
"xibUsingHotKeyCNS.title" = "全字库模式"; "xibUsingHotKeyCNS.title" = "全字库模式";
"xibUsingHotKeyHalfWidthASCII.title" = "半形标点模式"; "xibUsingHotKeyHalfWidthASCII.title" = "半形标点模式";
"xibUsingHotKeyInputMode.title" = "简体/繁体中文输入模式切换";
"xibUsingHotKeyJIS.title" = "JIS 新字体模式"; "xibUsingHotKeyJIS.title" = "JIS 新字体模式";
"xibUsingHotKeyKangXi.title" = "康熙正体字模式"; "xibUsingHotKeyKangXi.title" = "康熙正体字模式";
"xibUsingHotKeyRevLookup.title" = "注音反查";
"xibUsingHotKeySCPC.title" = "模拟逐字选字输入"; "xibUsingHotKeySCPC.title" = "模拟逐字选字输入";
"xjP-r7-GaK.title" = "酷音大千二十六键"; "xjP-r7-GaK.title" = "酷音大千二十六键";
"XqL-rf-X6d.title" = "Space 换下一页Shift+Space 换选下一个候选字。"; "XqL-rf-X6d.title" = "Space 换下一页Shift+Space 换选下一个候选字。";

View File

@ -12,8 +12,6 @@
"17.title" = "游標置於詞語後方 // Windows 微軟新注音風格"; "17.title" = "游標置於詞語後方 // Windows 微軟新注音風格";
"18.title" = "Radio"; "18.title" = "Radio";
"1AW-xf-c2f.label" = "鍵盤"; "1AW-xf-c2f.label" = "鍵盤";
"1ll-Jn-OD5.title" = "CIN 磁帶模式";
"1Pn-EV-mui.title" = "注音反查";
"20.title" = "Radio"; "20.title" = "Radio";
"21.title" = "橫向佈局"; "21.title" = "橫向佈局";
"22.title" = "縱向佈局"; "22.title" = "縱向佈局";
@ -134,10 +132,13 @@
"xibOutputSettings.title" = "輸出設定"; "xibOutputSettings.title" = "輸出設定";
"xibUsingCurrencyNumerals.title" = "大寫漢字數字輸出"; "xibUsingCurrencyNumerals.title" = "大寫漢字數字輸出";
"xibUsingHotKeyAssociates.title" = "逐字選字聯想模式"; "xibUsingHotKeyAssociates.title" = "逐字選字聯想模式";
"xibUsingHotKeyCassette.title" = "CIN 磁帶模式";
"xibUsingHotKeyCNS.title" = "全字庫模式"; "xibUsingHotKeyCNS.title" = "全字庫模式";
"xibUsingHotKeyHalfWidthASCII.title" = "半形標點模式"; "xibUsingHotKeyHalfWidthASCII.title" = "半形標點模式";
"xibUsingHotKeyInputMode.title" = "簡體/繁體中文輸入模式切換";
"xibUsingHotKeyJIS.title" = "JIS 新字體模式"; "xibUsingHotKeyJIS.title" = "JIS 新字體模式";
"xibUsingHotKeyKangXi.title" = "康熙正體字模式"; "xibUsingHotKeyKangXi.title" = "康熙正體字模式";
"xibUsingHotKeyRevLookup.title" = "注音反查";
"xibUsingHotKeySCPC.title" = "模擬逐字選字輸入"; "xibUsingHotKeySCPC.title" = "模擬逐字選字輸入";
"xjP-r7-GaK.title" = "酷音大千二十六鍵"; "xjP-r7-GaK.title" = "酷音大千二十六鍵";
"XqL-rf-X6d.title" = "Space 換下一頁Shift+Space 換選下一個候選字"; "XqL-rf-X6d.title" = "Space 換下一頁Shift+Space 換選下一個候選字";