UserDef // +kSpecifyCmdOptCtrlEnterBehavior.

This commit is contained in:
ShikiSuen 2024-02-25 20:20:29 +08:00
parent 7be2a85b25
commit 76dd75ce5a
13 changed files with 216 additions and 73 deletions

View File

@ -393,75 +393,6 @@ extension InputHandler {
return true
}
// MARK: - Command+Enter
/// Command+Enter
/// - Parameter isShiftPressed: Shift
/// - Returns: SessionCtl IMK
private func commissionByCtrlCommandEnter(isShiftPressed: Bool = false) -> String {
var displayedText = compositor.keys.joined(separator: "\t")
if compositor.isEmpty {
displayedText = readingForDisplay
}
if !prefs.cassetteEnabled {
if prefs.inlineDumpPinyinInLieuOfZhuyin {
if !compositor.isEmpty {
var arrDisplayedTextElements = [String]()
compositor.keys.forEach { key in
arrDisplayedTextElements.append(Tekkon.restoreToneOneInPhona(target: key)) //
}
displayedText = arrDisplayedTextElements.joined(separator: "\t")
}
displayedText = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: displayedText) //
}
if prefs.showHanyuPinyinInCompositionBuffer {
if compositor.isEmpty {
displayedText = displayedText.replacingOccurrences(of: "1", with: "")
}
}
}
displayedText = displayedText.replacingOccurrences(of: "\t", with: isShiftPressed ? "-" : " ")
return displayedText
}
// MARK: - Command+Option+Enter Ruby
/// Command+Option+Enter Ruby
/// - Parameter isShiftPressed: Shift
/// - Returns: SessionCtl IMK
private func commissionByCtrlOptionCommandEnter(isShiftPressed: Bool = false) -> String {
var composed = ""
compositor.walkedNodes.smashedPairs.forEach { key, value in
var key = key
if !prefs.cassetteEnabled {
key =
prefs.inlineDumpPinyinInLieuOfZhuyin
? Tekkon.restoreToneOneInPhona(target: key) //
: Tekkon.cnvPhonaToTextbookReading(target: key) //
if prefs.inlineDumpPinyinInLieuOfZhuyin {
key = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: key) //
key = Tekkon.cnvHanyuPinyinToTextbookStyle(targetJoined: key) // 調
}
}
key = key.replacingOccurrences(of: "\t", with: " ")
if isShiftPressed {
if !composed.isEmpty { composed += " " }
composed += key.contains("_") ? "??" : key
return
}
//
composed += key.contains("_") ? value : "<ruby>\(value)<rp>(</rp><rt>\(key)</rt><rp>)</rp></ruby>"
}
return composed
}
// MARK: - BackSpace (macOS Delete)
/// BackSpace (macOS Delete)

View File

@ -0,0 +1,125 @@
// (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// ====================
// This code is released under the MIT license (SPDX-License-Identifier: MIT)
// ... with NTL restriction stating that:
// No trademark license is granted to use the trade names, trademarks, service
// marks, or product names of Contributor, except as required to fulfill notice
// requirements defined in MIT License.
import BrailleSputnik
import Shared
import Tekkon
///
extension InputHandler {
// MARK: - (Shift+)Ctrl+Command+Enter
/// Command+Enter
/// - Parameter isShiftPressed: Shift
/// - Returns: SessionCtl IMK
func commissionByCtrlCommandEnter(isShiftPressed: Bool = false) -> String {
var displayedText = compositor.keys.joined(separator: "\t")
if compositor.isEmpty {
displayedText = readingForDisplay
}
if !prefs.cassetteEnabled {
if prefs.inlineDumpPinyinInLieuOfZhuyin {
if !compositor.isEmpty {
var arrDisplayedTextElements = [String]()
compositor.keys.forEach { key in
arrDisplayedTextElements.append(Tekkon.restoreToneOneInPhona(target: key)) //
}
displayedText = arrDisplayedTextElements.joined(separator: "\t")
}
displayedText = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: displayedText) //
}
if prefs.showHanyuPinyinInCompositionBuffer {
if compositor.isEmpty {
displayedText = displayedText.replacingOccurrences(of: "1", with: "")
}
}
}
displayedText = displayedText.replacingOccurrences(of: "\t", with: isShiftPressed ? "-" : " ")
return displayedText
}
// MARK: - (Shift+)Ctrl+Command+Option+Enter Ruby
private enum CommitableMarkupType: Int {
case bareKeys = -1
case textWithBracketedAnnotations = 0
case textWithHTMLRubyAnnotations = 1
case braille1947 = 2
case braille2018 = 3
static func match(rawValue: Int) -> Self {
CommitableMarkupType(rawValue: rawValue) ?? .textWithBracketedAnnotations
}
var brailleStandard: BrailleSputnik.BrailleStandard? {
switch self {
case .braille1947: return .of1947
case .braille2018: return .of2018
default: return nil
}
}
}
/// Command+Option+Enter Ruby
///
/// prefs.specifyCmdOptCtrlEnterBehavior
/// 1.
/// 2. HTML Ruby
/// 3. (1947)
/// 4. (GF0019-2018)
/// - Parameter isShiftPressed: Shift
/// - Returns: SessionCtl IMK
func commissionByCtrlOptionCommandEnter(isShiftPressed: Bool = false) -> String {
var behavior = CommitableMarkupType.match(rawValue: prefs.specifyCmdOptCtrlEnterBehavior)
if prefs.cassetteEnabled, behavior.brailleStandard != nil {
behavior = .textWithBracketedAnnotations
}
if isShiftPressed { behavior = .bareKeys }
guard let brailleStandard = behavior.brailleStandard else {
return specifyTextMarkupToCommit(behavior: behavior)
}
let brailleProcessor = BrailleSputnik(standard: brailleStandard)
return brailleProcessor.convertToBraille(
smashedPairs: compositor.walkedNodes.smashedPairs,
extraInsertion: (reading: composer.value, cursor: compositor.cursor)
)
}
private func specifyTextMarkupToCommit(behavior: CommitableMarkupType) -> String {
var composed = ""
compositor.walkedNodes.smashedPairs.forEach { key, value in
var key = key
if !prefs.cassetteEnabled {
key =
prefs.inlineDumpPinyinInLieuOfZhuyin
? Tekkon.restoreToneOneInPhona(target: key) //
: Tekkon.cnvPhonaToTextbookReading(target: key) //
if prefs.inlineDumpPinyinInLieuOfZhuyin {
key = Tekkon.cnvPhonaToHanyuPinyin(targetJoined: key) //
key = Tekkon.cnvHanyuPinyinToTextbookStyle(targetJoined: key) // 調
}
}
key = key.replacingOccurrences(of: "\t", with: " ")
switch behavior {
case .bareKeys:
if !composed.isEmpty { composed += " " }
composed += key.contains("_") ? "??" : key
case .textWithBracketedAnnotations:
composed += key.contains("_") ? value : "\(value)(\(key))"
case .textWithHTMLRubyAnnotations:
composed += key.contains("_") ? value : "<ruby>\(value)<rp>(</rp><rt>\(key)</rt><rp>)</rp></ruby>"
case .braille1947: break //
case .braille2018: break //
}
}
return composed
}
}

View File

@ -319,6 +319,9 @@ import SwiftExtension
@AppProperty(key: UserDef.kSpecifyShiftSpaceKeyBehavior.rawValue, defaultValue: false)
public dynamic var specifyShiftSpaceKeyBehavior: Bool
@AppProperty(key: UserDef.kSpecifyCmdOptCtrlEnterBehavior.rawValue, defaultValue: 0)
public dynamic var specifyCmdOptCtrlEnterBehavior: Int
// MARK: - Optional settings
@AppProperty(key: UserDef.kCandidateTextFontName.rawValue, defaultValue: "")

View File

@ -80,6 +80,9 @@ public extension PrefMgr {
if ![0, 1, 2].contains(readingNarrationCoverage) {
readingNarrationCoverage = 0
}
if ![0, 1, 2, 3].contains(specifyCmdOptCtrlEnterBehavior) {
specifyCmdOptCtrlEnterBehavior = 0
}
}
}

View File

@ -33,7 +33,11 @@ public extension SettingsPanesCocoa {
UserDef.kSpecifyShiftBackSpaceKeyBehavior.render(fixWidth: innerContentWidth)
UserDef.kSpecifyShiftTabKeyBehavior.render(fixWidth: innerContentWidth)
UserDef.kSpecifyShiftSpaceKeyBehavior.render(fixWidth: innerContentWidth)
UserDef.kSpecifyCmdOptCtrlEnterBehavior.render(fixWidth: innerContentWidth)
}?.boxed()
NSView()
}
NSTabView.TabPage(title: "") {
NSStackView.buildSection(width: innerContentWidth) {
UserDef.kUpperCaseLetterKeyBehavior.render(fixWidth: innerContentWidth)
UserDef.kNumPadCharInputBehavior.render(fixWidth: innerContentWidth)
@ -44,7 +48,7 @@ public extension SettingsPanesCocoa {
}?.boxed()
NSView()
}
NSTabView.TabPage(title: "") {
NSTabView.TabPage(title: "") {
NSStackView.buildSection(width: innerContentWidth) {
UserDef.kChooseCandidateUsingSpace.render(fixWidth: innerContentWidth)
UserDef.kEscToCleanInputBuffer.render(fixWidth: innerContentWidth)
@ -65,7 +69,7 @@ public extension SettingsPanesCocoa {
}?.boxed()
NSView()
}
NSTabView.TabPage(title: "") {
NSTabView.TabPage(title: "") {
NSStackView.buildSection(width: innerContentWidth) {
UserDef.kBypassNonAppleCapsLockHandling.render(fixWidth: innerContentWidth)
UserDef.kShareAlphanumericalModeStatusAcrossClients.render(fixWidth: innerContentWidth)

View File

@ -35,6 +35,9 @@ public struct VwrSettingsPaneBehavior: View {
@AppStorage(wrappedValue: false, UserDef.kSpecifyShiftSpaceKeyBehavior.rawValue)
private var specifyShiftSpaceKeyBehavior: Bool
@AppStorage(wrappedValue: 0, UserDef.kSpecifyCmdOptCtrlEnterBehavior.rawValue)
private var specifyCmdOptCtrlEnterBehavior: Int
@AppStorage(wrappedValue: true, UserDef.kUseSpaceToCommitHighlightedSCPCCandidate.rawValue)
private var useSpaceToCommitHighlightedSCPCCandidate: Bool
@ -80,6 +83,7 @@ public struct VwrSettingsPaneBehavior: View {
UserDef.kSpecifyShiftBackSpaceKeyBehavior.bind($specifyShiftBackSpaceKeyBehavior).render()
UserDef.kSpecifyShiftTabKeyBehavior.bind($specifyShiftTabKeyBehavior).render()
.pickerStyle(RadioGroupPickerStyle())
UserDef.kSpecifyCmdOptCtrlEnterBehavior.bind($specifyCmdOptCtrlEnterBehavior).render()
VStack(alignment: .leading) {
UserDef.kSpecifyShiftSpaceKeyBehavior.bind($specifyShiftSpaceKeyBehavior).render()
UserDef.kUseSpaceToCommitHighlightedSCPCCandidate.bind($useSpaceToCommitHighlightedSCPCCandidate).render()

View File

@ -151,4 +151,35 @@ extension MainAssemblyTests {
XCTAssertEqual(resultText6, "濟公的年中獎金")
vCTestLog("- 已成功證實「年終」的記憶不會對除了給定上下文以外的情形生效。")
}
/// inputHandler.commissionByCtrlOptionCommandEnter()
func test105_InputHandler_MiscCommissionTest() throws {
PrefMgr.shared.useSCPCTypingMode = false
clearTestUOM()
vCTestLog("正在測試 inputHandler.commissionByCtrlOptionCommandEnter()。")
testSession.resetInputHandler(forceComposerCleanup: true)
typeSentenceOrCandidates("el dk ru4ej/ n 2k7")
guard let handler = testSession.inputHandler as? InputHandler else {
XCTAssertThrowsError("testSession.handler is nil.")
return
}
PrefMgr.shared.specifyCmdOptCtrlEnterBehavior = 0
var result = handler.commissionByCtrlOptionCommandEnter(isShiftPressed: true)
XCTAssertEqual(result, "ㄍㄠ ㄎㄜ ㄐㄧˋ ㄍㄨㄥ ㄙ ˙ㄉㄜ")
result = handler.commissionByCtrlOptionCommandEnter() // isShiftPressed false
XCTAssertEqual(result, "高(ㄍㄠ)科(ㄎㄜ)技(ㄐㄧˋ)公(ㄍㄨㄥ)司(ㄙ)的(˙ㄉㄜ)")
PrefMgr.shared.specifyCmdOptCtrlEnterBehavior = 1
result = handler.commissionByCtrlOptionCommandEnter()
let expectedRubyResult = """
<ruby><rp>(</rp><rt></rt><rp>)</rp></ruby><ruby><rp>(</rp><rt></rt><rp>)</rp></ruby><ruby><rp>(</rp><rt>ˋ</rt><rp>)</rp></ruby><ruby><rp>(</rp><rt></rt><rp>)</rp></ruby><ruby><rp>(</rp><rt></rt><rp>)</rp></ruby><ruby><rp>(</rp><rt>˙</rt><rp>)</rp></ruby>
"""
XCTAssertEqual(result, expectedRubyResult)
PrefMgr.shared.specifyCmdOptCtrlEnterBehavior = 2
result = handler.commissionByCtrlOptionCommandEnter()
XCTAssertEqual(result, "⠅⠩⠄⠇⠮⠄⠅⠡⠐⠅⠯⠄⠑⠄⠙⠮⠁")
PrefMgr.shared.specifyCmdOptCtrlEnterBehavior = 3
result = handler.commissionByCtrlOptionCommandEnter()
XCTAssertEqual(result, "⠛⠖⠁⠅⠢⠁⠛⠊⠆⠛⠲⠁⠎⠁⠙⠢")
vCTestLog("成功完成測試 inputHandler.commissionByCtrlOptionCommandEnter()。")
}
}

View File

@ -83,6 +83,7 @@ public protocol PrefMgrProtocol {
var specifyShiftBackSpaceKeyBehavior: Int { get set }
var specifyShiftTabKeyBehavior: Bool { get set }
var specifyShiftSpaceKeyBehavior: Bool { get set }
var specifyCmdOptCtrlEnterBehavior: Int { get set }
var candidateTextFontName: String { get set }
var candidateKeys: String { get set }
var useSCPCTypingMode: Bool { get set }

View File

@ -71,6 +71,7 @@ public enum UserDef: String, CaseIterable, Identifiable {
case kSpecifyShiftBackSpaceKeyBehavior = "SpecifyShiftBackSpaceKeyBehavior"
case kSpecifyShiftTabKeyBehavior = "SpecifyShiftTabKeyBehavior"
case kSpecifyShiftSpaceKeyBehavior = "SpecifyShiftSpaceKeyBehavior"
case kSpecifyCmdOptCtrlEnterBehavior = "SpecifyCmdOptCtrlEnterBehavior"
case kAllowBoostingSingleKanjiAsUserPhrase = "AllowBoostingSingleKanjiAsUserPhrase"
case kUseSCPCTypingMode = "UseSCPCTypingMode"
case kMaxCandidateLength = "MaxCandidateLength"
@ -195,6 +196,7 @@ public extension UserDef {
case .kSpecifyShiftBackSpaceKeyBehavior: return .integer
case .kSpecifyShiftTabKeyBehavior: return .bool
case .kSpecifyShiftSpaceKeyBehavior: return .bool
case .kSpecifyCmdOptCtrlEnterBehavior: return .integer
case .kAllowBoostingSingleKanjiAsUserPhrase: return .bool
case .kUseSCPCTypingMode: return .bool
case .kMaxCandidateLength: return .integer
@ -415,6 +417,16 @@ public extension UserDef {
1: "Space to +revolve pages, Shift+Space to +revolve candidates",
]
)
case .kSpecifyCmdOptCtrlEnterBehavior: return .init(
userDef: self, shortTitle: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.shortTitle",
description: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.description",
options: [
0: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.0",
1: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.1",
2: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.2",
3: "i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.3",
]
)
case .kAllowBoostingSingleKanjiAsUserPhrase: return .init(
userDef: self, shortTitle: "Allow boosting / excluding a candidate of single kanji when marking",
description: "⚠︎ This may hinder the walking algorithm from giving appropriate results."
@ -432,7 +444,8 @@ public extension UserDef {
userDef: self, shortTitle: "Show Hanyu-Pinyin in the inline composition buffer"
)
case .kInlineDumpPinyinInLieuOfZhuyin: return .init(
userDef: self, shortTitle: "Commit Hanyu-Pinyin instead on Ctrl(+Option)+Command+Enter"
userDef: self, shortTitle: "Commit Hanyu-Pinyin instead on Ctrl(+Option)+Command+Enter",
description: "i18n:UserDef.kInlineDumpPinyinInLieuOfZhuyin.description"
)
case .kFetchSuggestionsFromUserOverrideModel: return .init(
userDef: self, shortTitle: "Applying typing suggestions from half-life user override model",

View File

@ -212,6 +212,7 @@
"i18n:UserDef.kCNS11643Enabled.shortTitle" = "Enable CNS11643 Support (2024-01-23)";
"i18n:UserDef.kDodgeInvalidEdgeCandidateCursorPosition.shortTitle" = "Dodge Invalid Edge Candidate Cursor Position";
"i18n:UserDef.kFilterNonCNSReadingsForCHTInput.shortTitle" = "Filter Non-CNS11643 factory readings (CHT input only)";
"i18n:UserDef.kInlineDumpPinyinInLieuOfZhuyin.description" = "Contents committed by Command+Option+Ctrl+Enter may vary depending on related behavior settings.";
"i18n:UserDef.kNumPadCharInputBehavior.description" = "Choose the behavior of numeric pad inputs.";
"i18n:UserDef.kNumPadCharInputBehavior.option.0" = "Always directly commit half-width chars";
"i18n:UserDef.kNumPadCharInputBehavior.option.1" = "Always directly commit full-width chars";
@ -230,6 +231,12 @@
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.description" = "This does: 1) On macOS 12 and later, if the Caps Lock gets turned off, then the internal switch for Shift-key / JIS-Eisu-key Alphanumerical Mode Toggle will also be switched off. 2) If you have turned off the same switch by JIS-Eisu key, then the Caps Lock gets turned off together. Note: vChewing has no way to recognize single hits of Shift key when Caps Lock is on.";
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.shortTitle" = "Sync the off state between Caps Lock and Shift / Eisu Alphanumerical Toggle";
"i18n:UserDef.kShowCodePointInCandidateUI.shortTitle" = "Show Unicode codepoint metadata in candidate window";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.description" = "This hotkey commits bracketed annotation instead of braille sequence if cassette mode is enabled. Also, please consider using those dedicated braille utility softwares if you have more professional necessities.";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.0" = "Commit Bracketed Annotation";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.1" = "Commit HTML Ruby Annotation";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.2" = "Commit Mandarin Braille (1947)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.3" = "Commit Mandarin Braille (GF0019-2018)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.shortTitle" = "Command+Option+Ctrl+Enter:";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.description" = "⚠︎ This will automatically prevent J and K from being used as candidate keys. Also, this won't work with %quick candidates in cassette mode.";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.shortTitle" = "Use J / K to Move Buffer Cursor While Choosing Candidates";
"IBM" = "IBM";

View File

@ -212,6 +212,7 @@
"i18n:UserDef.kCNS11643Enabled.shortTitle" = "全字庫モード // 入力可能な漢字数を倍増す (2024-01-23)";
"i18n:UserDef.kDodgeInvalidEdgeCandidateCursorPosition.shortTitle" = "端末での不合理的な候補選択用カーソル位置を是正";
"i18n:UserDef.kFilterNonCNSReadingsForCHTInput.shortTitle" = "全字庫以外の音読みを内蔵辞書繁体中国語検索結果から除く";
"i18n:UserDef.kInlineDumpPinyinInLieuOfZhuyin.description" = "Command+Option+Ctrl+Enter で送り出したものは、それに関する作動設定次第です。";
"i18n:UserDef.kNumPadCharInputBehavior.description" = "テンキー文字の入力行為をご指定ください。";
"i18n:UserDef.kNumPadCharInputBehavior.option.0" = "いつでも半角で直接出力";
"i18n:UserDef.kNumPadCharInputBehavior.option.1" = "いつでも全角で直接出力";
@ -230,6 +231,12 @@
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.description" = "このチェックを入れると:イ)[macOS 12 以降] CapsLockがオフした時に、「Shiftキー・JIS英数キー」の共有していた内部のスイッチもオフにする「JIS英数キー」でそのキーに応ずる英数モードがオフした時に、CapsLockもオフにする。尚、CapsLockがオンの時に、「Shiftキーだけを打った」行為は検知できません。";
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.shortTitle" = "「Shiftキー・JIS英数キー」による英数モードのオフ状態をCapsLockのオフ状態と同期する";
"i18n:UserDef.kShowCodePointInCandidateUI.shortTitle" = "候補陳列ウィンドウで Unicode のコードポイント情報を示す";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.description" = "カセットモードがONにした場合、このショートカットで点字を送り出すのはできなくて、代わりに「発音表記丸括弧仕様」を送り出します。尚、他の点字機能のご希望の場合、他の特別の点字ツールソフトのご使用はお薦めです。";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.0" = "発音表記(丸括弧仕様)を送出";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.1" = "発音表記HTML ルビ仕様)を送出";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.2" = "中国語点字 (1947) を送出";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.3" = "中国語点字 (GF0019-2018) を送出";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.shortTitle" = "Command+Option+Ctrl+Enter:";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.description" = "⚠︎ これで「J / K」キーは言選り用キー陣列から自動的に外されます。尚、この機能はカセットモードの「%quick」による早速候補入力状態では利用できません。";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.shortTitle" = "候補陳列が見えるとき、「J / K」キーで入力緩衝列のカーソルを移す";
"IBM" = "IBM 配列";
@ -399,7 +406,7 @@
"Wildcard key cannot be the initial key." = "骨牌キーは最初のキーとしてはならぬ。";
"Yale Pinyin with Numeral Intonation" = "イェール弁音 (ローマ字+数字音調)";
"Yes" = "うむ";
"You are about to uncheck this fart suppressor. You are responsible for all consequences lead by letting people nearby hear the fart sound come from your computer. We strongly advise against unchecking this in any public circumstance that prohibits NSFW netas." = "マナーモードのチェックの外すことになります。周りの人は貴殿のパソコンから屁音を聞いてしまい、それについての結果は全部貴殿の自己責任でございます。公的なる場所でこのチェックを外すのはおめできません。";
"You are about to uncheck this fart suppressor. You are responsible for all consequences lead by letting people nearby hear the fart sound come from your computer. We strongly advise against unchecking this in any public circumstance that prohibits NSFW netas." = "マナーモードのチェックの外すことになります。周りの人は貴殿のパソコンから屁音を聞いてしまい、それについての結果は全部貴殿の自己責任でございます。公的なる場所でこのチェックを外すのはおめできません。";
"You are already using the latest version of vChewing." = "今の威注音はすでに最新版だと報告します。";
"You are already using the latest version." = "現在稼働中のは最新バージョンである。";
"You are proceeding to System Preferences to enable the Input Source which corresponds to the input mode you are going to switch to." = "ご希望の入力モードのご利用の前に、それに対応するの入力ソースの追加が必要である。これからはシステム環境設定の該当ページへ案内します。";

View File

@ -212,6 +212,7 @@
"i18n:UserDef.kCNS11643Enabled.shortTitle" = "启用 CNS11643 全字库支援 (2024-01-23)";
"i18n:UserDef.kDodgeInvalidEdgeCandidateCursorPosition.shortTitle" = "糾正不合理的端点选字游标位置";
"i18n:UserDef.kFilterNonCNSReadingsForCHTInput.shortTitle" = "仅繁体中文: 原厂辞典仅返回符合全字库读音的结果";
"i18n:UserDef.kInlineDumpPinyinInLieuOfZhuyin.description" = "借由 Command+Option+Ctrl+Enter 输出的内容受对应的行为设定所影响。";
"i18n:UserDef.kNumPadCharInputBehavior.description" = "指定数字小键盘的输入行为。";
"i18n:UserDef.kNumPadCharInputBehavior.option.0" = "始终以半形文字直接递交";
"i18n:UserDef.kNumPadCharInputBehavior.option.1" = "始终以全形文字直接递交";
@ -230,6 +231,12 @@
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.description" = "勾选该选项后1) [至少 macOS 12 起] Caps Lock 在关掉的时候,会连带关掉由 Shift 键 / JIS 英数键负责控制的英数模式2) 在借由 JIS 英数键关掉其控制的英数模式的时候,也会关掉 Caps Lock。注威注音无法在 Caps Lock 亮灯的时候感知 Shift 键的单独敲击事件。";
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.shortTitle" = "使「Shift 键 / JIS 英数键」英数模式的关闭状态与 Caps Lock 的关闭状态保持彼此同步";
"i18n:UserDef.kShowCodePointInCandidateUI.shortTitle" = "在选字窗内显示当前候选字的统一码码位";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.description" = "在磁带模式下,该热键组合将不再递交点字阵列(届时会改为递交括弧注解标记)。如另有对点字/盲文功能的更专业的需求的话,请考虑使用专门的点字/盲文工具软体。";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.0" = "递交括弧注解标记";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.1" = "递交 HTML Ruby 注解标记";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.2" = "递交国语点字 (1947)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.3" = "递交国通盲文 (GF0019-2018)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.shortTitle" = "Command+Option+Ctrl+Enter:";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.description" = "⚠︎ 这将自动禁止 J / K 键用作选字键。另外,该功能在磁带模式的“%quick”快速选字状态下无效。";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.shortTitle" = "在选字窗显示时允许以 J / K 键移动组字区游标";
"IBM" = "IBM 排列";

View File

@ -212,6 +212,7 @@
"i18n:UserDef.kCNS11643Enabled.shortTitle" = "啟用 CNS11643 全字庫支援 (2024-01-23)";
"i18n:UserDef.kDodgeInvalidEdgeCandidateCursorPosition.shortTitle" = "糾正不合理的端點選字游標位置";
"i18n:UserDef.kFilterNonCNSReadingsForCHTInput.shortTitle" = "僅繁體中文: 原廠辭典僅返回符合全字庫讀音的結果";
"i18n:UserDef.kInlineDumpPinyinInLieuOfZhuyin.description" = "藉由 Command+Option+Ctrl+Enter 輸出的內容受對應的行為設定所影響。";
"i18n:UserDef.kNumPadCharInputBehavior.description" = "指定數字小鍵盤的輸入行為。";
"i18n:UserDef.kNumPadCharInputBehavior.option.0" = "始終以半形文字直接遞交";
"i18n:UserDef.kNumPadCharInputBehavior.option.1" = "始終以全形文字直接遞交";
@ -230,6 +231,12 @@
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.description" = "勾選該選項後1) [至少 macOS 12 起] Caps Lock 在關掉的時候,會連帶關掉由 Shift 鍵 / JIS 英數鍵負責控制的英數模式2) 在藉由 JIS 英數鍵關掉其控制的英數模式的時候,也會關掉 Caps Lock。註威注音無法在 Caps Lock 亮燈的時候感知 Shift 鍵的單獨敲擊事件。";
"i18n:UserDef.kShiftEisuToggleOffTogetherWithCapsLock.shortTitle" = "使「Shift 鍵 / JIS 英数鍵」英數模式的關閉狀態與 Caps Lock 的關閉狀態保持彼此同步";
"i18n:UserDef.kShowCodePointInCandidateUI.shortTitle" = "在選字窗內顯示當前候選字的統一碼碼位";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.description" = "在磁帶模式下,該熱鍵組合將不再遞交點字陣列(屆時會改為遞交括弧註解標記)。如另有對點字/盲文功能的更專業的需求的話,請考慮使用專門的點字/盲文工具軟體。";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.0" = "遞交括弧註解標記";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.1" = "遞交 HTML Ruby 註解標記";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.2" = "遞交國語點字 (1947)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.option.3" = "遞交國通盲文 (GF0019-2018)";
"i18n:UserDef.kSpecifyCmdOptCtrlEnterBehavior.shortTitle" = "Command+Option+Ctrl+Enter:";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.description" = "⚠︎ 這將自動禁止 J / K 鍵用作選字鍵。另外,該功能在磁帶模式的「%quick」快速選字狀態下無效。";
"i18n:UserDef.kUseJKtoMoveCompositorCursorInCandidateState.shortTitle" = "在選字窗顯示時允許以 J / K 鍵移動組字區游標";
"IBM" = "IBM 排列";