diff --git a/Source/Modules/UIModules/PrefUI/VwrPrefPaneCandidates.swift b/Source/Modules/UIModules/PrefUI/VwrPrefPaneCandidates.swift index 24a2d6a8..d5d66ced 100644 --- a/Source/Modules/UIModules/PrefUI/VwrPrefPaneCandidates.swift +++ b/Source/Modules/UIModules/PrefUI/VwrPrefPaneCandidates.swift @@ -35,6 +35,9 @@ struct VwrPrefPaneCandidates: View { @Backport.AppStorage(wrappedValue: true, UserDef.kMoveCursorAfterSelectingCandidate.rawValue) private var moveCursorAfterSelectingCandidate: Bool + @Backport.AppStorage(wrappedValue: true, UserDef.kUseDynamicCandidateWindowOrigin.rawValue) + private var useDynamicCandidateWindowOrigin: Bool + @Backport.AppStorage(wrappedValue: false, UserDef.kUseFixedCandidateOrderOnSelection.rawValue) private var useFixedCandidateOrderOnSelection: Bool @@ -122,12 +125,15 @@ struct VwrPrefPaneCandidates: View { .labelsHidden() .pickerStyle(RadioGroupPickerStyle()) Text(LocalizedStringKey("Choose the cursor position where you want to list possible candidates.")) - .preferenceDescription(maxWidth: CtlPrefUIShared.maxDescriptionWidth) Toggle( LocalizedStringKey("Push the cursor in front of the phrase after selection"), isOn: $moveCursorAfterSelectingCandidate ).controlSize(.small) + Toggle( + LocalizedStringKey("Adjust candidate window location according to current node length"), + isOn: $useDynamicCandidateWindowOrigin + ).controlSize(.small).disabled(useRearCursorMode) } SSPreferences.Settings.Section(title: "Misc Settings:".localized, bottomDivider: true) { Toggle( diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index ccbd89e6..f9292c9f 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -199,6 +199,7 @@ "⚠︎ This may hinder the walking algorithm from giving appropriate results." = "⚠︎ This may hinder the walking algorithm from giving appropriate results."; "⚠︎ This will reboot the vChewing IME." = "⚠︎ This will reboot the vChewing IME."; "Accept leading intonations in rare cases" = "Accept leading intonations in rare cases"; +"Adjust candidate window location according to current node length" = "Adjust candidate window location according to current node length"; "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file." = "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file."; "Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings"; "Allow boosting / excluding a candidate of single kanji when marking" = "Allow boosting / excluding a candidate of single kanji when marking"; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index ccbd89e6..f9292c9f 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -199,6 +199,7 @@ "⚠︎ This may hinder the walking algorithm from giving appropriate results." = "⚠︎ This may hinder the walking algorithm from giving appropriate results."; "⚠︎ This will reboot the vChewing IME." = "⚠︎ This will reboot the vChewing IME."; "Accept leading intonations in rare cases" = "Accept leading intonations in rare cases"; +"Adjust candidate window location according to current node length" = "Adjust candidate window location according to current node length"; "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file." = "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file."; "Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings"; "Allow boosting / excluding a candidate of single kanji when marking" = "Allow boosting / excluding a candidate of single kanji when marking"; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index 4fc07ce2..d577c8ca 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -200,6 +200,7 @@ "⚠︎ This may hinder the walking algorithm from giving appropriate results." = "⚠︎ ウォーキング算法に差し支えてしまい、正しくない結果が出る恐れがある。"; "⚠︎ This will reboot the vChewing IME." = "⚠︎ これで威注音入力アプリを再起動。"; "Accept leading intonations in rare cases" = "まれな場合には、音調記号の優先入力を許容する"; +"Adjust candidate window location according to current node length" = "カーソル所在位置の単語の長さによって候補陳列ウィンドウの位置を調整"; "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file." = "これをチェックしないと、全ての筆画は ASCII キーネームで入力緩衝列で表示してしまうことになる。CIN ファイルの「%keyname」というところで筆画の定義はできる。"; "Allow backspace-editing miscomposed readings" = "効かぬ音読みを BackSpace で再編集"; "Allow boosting / excluding a candidate of single kanji when marking" = "マーキングモードで即排除/即最優先にできる候補の文字数の最低限は1字とする"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index 2f708af2..596a0f00 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -199,6 +199,7 @@ "⚠︎ This may hinder the walking algorithm from giving appropriate results." = "⚠︎ 这可能会妨碍爬轨函式,使其无法给出正确的结果。"; "⚠︎ This will reboot the vChewing IME." = "⚠︎ 这将重启威注音输入法。"; "Accept leading intonations in rare cases" = "在个别情况下,允许声调前置键入"; +"Adjust candidate window location according to current node length" = "根据当前位置的字词长度,自动调整选字窗的位置"; "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file." = "不启用该选项的话,在组字区内的字根将会以原始键盘按键名称来显示。所有关于字根的定义,均请洽 CIN 磁带档案内的「%keyname」章节。"; "Allow backspace-editing miscomposed readings" = "允许对无效的读音使用 BackSpace 编辑"; "Allow boosting / excluding a candidate of single kanji when marking" = "允许借由标记模式将可以就地升权/排除的候选字词的最短词长设为单个汉字"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index 76f3c767..e292d13a 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -199,6 +199,7 @@ "⚠︎ This may hinder the walking algorithm from giving appropriate results." = "⚠︎ 這可能會妨礙爬軌函式,使其無法給出正確的結果。"; "⚠︎ This will reboot the vChewing IME." = "⚠︎ 這將重啟威注音輸入法。"; "Accept leading intonations in rare cases" = "在個別情況下,允許聲調前置鍵入"; +"Adjust candidate window location according to current node length" = "根據當前位置的字詞長度,自動調整選字窗的位置"; "All strokes in the composition buffer will be shown as ASCII keyboard characters unless this option is enabled. Stroke is definable in the “%keyname” section of the CIN file." = "不啟用該選項的話,在組字區內的字根將會以原始鍵盤按鍵名稱來顯示。所有關於字根的定義,均請洽 CIN 磁帶檔案內的「%keyname」章節。"; "Allow backspace-editing miscomposed readings" = "允許對無效的讀音使用 BackSpace 編輯"; "Allow boosting / excluding a candidate of single kanji when marking" = "允許藉由標記模式將可以就地升權/排除的候選字詞的最短詞長設為單個漢字";