PrefWindow // Crediting Hiraku regarding the Cocoa UI lang menu.

Co-authored-by: Hiraku <dev@hiraku.tw>
This commit is contained in:
ShikiSuen 2022-12-29 22:18:22 +08:00
parent cbdf8c3727
commit abe6375347
1 changed files with 25 additions and 21 deletions

View File

@ -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?