PrefWindow // Crediting Hiraku regarding the Cocoa UI lang menu.
Co-authored-by: Hiraku <dev@hiraku.tw>
This commit is contained in:
parent
cbdf8c3727
commit
abe6375347
|
@ -114,31 +114,35 @@ class CtlPrefWindow: NSWindowController, NSWindowDelegate {
|
||||||
lblCurrentlySpecifiedUserDataFolder.placeholderString = LMMgr.dataFolderPath(
|
lblCurrentlySpecifiedUserDataFolder.placeholderString = LMMgr.dataFolderPath(
|
||||||
isDefaultFolder: true)
|
isDefaultFolder: true)
|
||||||
|
|
||||||
let languages = ["auto", "en", "zh-Hans", "zh-Hant", "ja"]
|
// Credit: Hiraku Wang (for the implementation of the UI language select support in Cocoa PrefWindow.
|
||||||
var autoMUISelectItem: NSMenuItem?
|
// Note: The SwiftUI PrefWindow has the same feature implemented by Shiki Suen.
|
||||||
var chosenLanguageItem: NSMenuItem?
|
do {
|
||||||
uiLanguageButton.menu?.removeAllItems()
|
let languages = ["auto", "en", "zh-Hans", "zh-Hant", "ja"]
|
||||||
|
var autoMUISelectItem: NSMenuItem?
|
||||||
|
var chosenLanguageItem: NSMenuItem?
|
||||||
|
uiLanguageButton.menu?.removeAllItems()
|
||||||
|
|
||||||
let appleLanguages = PrefMgr.shared.appleLanguages
|
let appleLanguages = PrefMgr.shared.appleLanguages
|
||||||
for language in languages {
|
for language in languages {
|
||||||
let menuItem = NSMenuItem()
|
let menuItem = NSMenuItem()
|
||||||
menuItem.title = NSLocalizedString(language, comment: language)
|
menuItem.title = NSLocalizedString(language, comment: language)
|
||||||
menuItem.representedObject = language
|
menuItem.representedObject = language
|
||||||
|
|
||||||
if language == "auto" {
|
if language == "auto" {
|
||||||
autoMUISelectItem = menuItem
|
autoMUISelectItem = menuItem
|
||||||
}
|
|
||||||
|
|
||||||
if !appleLanguages.isEmpty {
|
|
||||||
if appleLanguages[0] == language {
|
|
||||||
chosenLanguageItem = menuItem
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
uiLanguageButton.menu?.addItem(menuItem)
|
|
||||||
}
|
|
||||||
|
|
||||||
currentLanguageSelectItem = chosenLanguageItem ?? autoMUISelectItem
|
if !appleLanguages.isEmpty {
|
||||||
uiLanguageButton.select(currentLanguageSelectItem)
|
if appleLanguages[0] == language {
|
||||||
|
chosenLanguageItem = menuItem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uiLanguageButton.menu?.addItem(menuItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
currentLanguageSelectItem = chosenLanguageItem ?? autoMUISelectItem
|
||||||
|
uiLanguageButton.select(currentLanguageSelectItem)
|
||||||
|
}
|
||||||
|
|
||||||
var usKeyboardLayoutItem: NSMenuItem?
|
var usKeyboardLayoutItem: NSMenuItem?
|
||||||
var chosenBaseKeyboardLayoutItem: NSMenuItem?
|
var chosenBaseKeyboardLayoutItem: NSMenuItem?
|
||||||
|
|
Loading…
Reference in New Issue