Pre Merge pull request !74 from ShikiSuen/upd/1.8.8

This commit is contained in:
ShikiSuen 2022-08-05 13:17:04 +00:00 committed by Gitee
commit 1765c45bdf
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
106 changed files with 973 additions and 2086 deletions

View File

@ -6,6 +6,7 @@ $ Main contributors and volunteers of this repository (vChewing for macOS):
$ 3rd-Party Modules Used: $ 3rd-Party Modules Used:
- ShiftKeyUpChecker: (c) 2019 and onwards Qwertyyb (March Yang) (MIT License).
- LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License). - LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License).
- SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License). - SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License).
- SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0) - SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0)

View File

@ -1,28 +1,12 @@
#!/usr/bin/env swift #!/usr/bin/env swift
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
#!/usr/bin/env swift #!/usr/bin/env swift
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -16,7 +16,35 @@ vChewing macOS: MIT-NTL License 麻理(去商标)授权合约
$ 在本专案内用到了下述第三方模组: $ 在本专案内用到了下述第三方模组:
- ShiftKeyUpChecker: (c) 2019 and onwards Qwertyyb (March Yang) (MIT License).
- LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License). - LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License).
- SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License). - SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License).
- SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0) - SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0)
- Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License). - Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License).
########################################################
## UPSTREAM LICENSE PROVIDED BELOW INTACT FOR REFERENCE
## https://github.com/openvanilla/McBopomofo/blob/5b319f491142c1170a3607e28ab4e91c22861998/LICENSE.txt
########################################################
MIT License
Copyright (c) 2011-2022 Mengjuei Hsieh et al.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -16,7 +16,35 @@ vChewing macOS: MIT-NTL License 麻理(去商標)授權合約
$ 在該專案內用到了下述第三方: $ 在該專案內用到了下述第三方:
- ShiftKeyUpChecker: (c) 2019 and onwards Qwertyyb (March Yang) (MIT License).
- LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License). - LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License).
- SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License). - SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License).
- SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0) - SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0)
- Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License). - Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License).
########################################################
## UPSTREAM LICENSE PROVIDED BELOW INTACT FOR REFERENCE
## https://github.com/openvanilla/McBopomofo/blob/5b319f491142c1170a3607e28ab4e91c22861998/LICENSE.txt
########################################################
MIT License
Copyright (c) 2011-2022 Mengjuei Hsieh et al.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -16,7 +16,35 @@ macOS 版威注音の開発Shiki Suen, Isaac Xen, Hiraku Wang, など。
$ 他の用いたモジュール: $ 他の用いたモジュール:
- ShiftKeyUpChecker: (c) 2019 and onwards Qwertyyb (March Yang) (MIT License).
- LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License). - LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License).
- SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License). - SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License).
- SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0) - SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0)
- Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License). - Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License).
########################################################
## UPSTREAM LICENSE PROVIDED BELOW INTACT FOR REFERENCE
## https://github.com/openvanilla/McBopomofo/blob/5b319f491142c1170a3607e28ab4e91c22861998/LICENSE.txt
########################################################
MIT License
Copyright (c) 2011-2022 Mengjuei Hsieh et al.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -16,7 +16,35 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
$ 3rd-Party Modules Used: $ 3rd-Party Modules Used:
- ShiftKeyUpChecker: (c) 2019 and onwards Qwertyyb (March Yang) (MIT License).
- LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License). - LineReader: (c) 2019 and onwards Robert Muckle-Jones (Apache 2.0 License).
- SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License). - SwiftUI Preferences UI Framework: (c) 2018 and onwards Sindre Sorhus (MIT License).
- SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0) - SwiftUI VDKComboBox: (c) 2022 and onwards Bryan Jones (CC BY-SA 4.0)
- Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License). - Note that Hotenka Chinese Converter is rewritten by Shiki Suen (using Swift) from Nick Chen's Objective-C library "NCChineseConverter" (MIT License).
########################################################
## UPSTREAM LICENSE PROVIDED BELOW INTACT FOR REFERENCE
## https://github.com/openvanilla/McBopomofo/blob/5b319f491142c1170a3607e28ab4e91c22861998/LICENSE.txt
########################################################
MIT License
Copyright (c) 2011-2022 Mengjuei Hsieh et al.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,31 +1,15 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation
public class ChineseConverter { public enum ChineseConverter {
public static let shared = HotenkaChineseConverter.init(plistDir: mgrLangModel.getBundleDataPath("convdict")) public static let shared = HotenkaChineseConverter(plistDir: mgrLangModel.getBundleDataPath("convdict"))
/// ///
private static let currencyNumeralDictTable: [String: (String, String, String, String)] = [ private static let currencyNumeralDictTable: [String: (String, String, String, String)] = [
@ -52,7 +36,21 @@ public class ChineseConverter {
default: target = target.replacingOccurrences(of: key, with: result.1) // Contemporary default: target = target.replacingOccurrences(of: key, with: result.1) // Contemporary
} }
} }
return }
private static let tableMappingArabicNumeralsToChinese: [String: String] = [
"0": "", "1": "", "2": "", "3": "", "4": "", "5": "", "6": "", "7": "", "8": "", "9": "",
]
///
/// - Parameter target:
public static func convertArabicNumeralsToChinese(target: String) -> String {
var target = target
for key in tableMappingArabicNumeralsToChinese.keys {
guard let result = tableMappingArabicNumeralsToChinese[key] else { continue }
target = target.replacingOccurrences(of: key, with: result)
}
return target
} }
/// CrossConvert. /// CrossConvert.
@ -71,7 +69,7 @@ public class ChineseConverter {
} }
public static func cnvTradToKangXi(_ strObj: String) -> String { public static func cnvTradToKangXi(_ strObj: String) -> String {
return shared.convert(strObj, to: .zhHantKX) shared.convert(strObj, to: .zhHantKX)
} }
public static func cnvTradToJIS(_ strObj: String) -> String { public static func cnvTradToJIS(_ strObj: String) -> String {

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Nick Chen's Obj-C library "NCChineseConverter" (MIT License). // Rebranded from (c) Nick Chen's Obj-C library "NCChineseConverter" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -0,0 +1,61 @@
// (c) 2022 and onwards Qwertyyb (MIT License).
// ====================
// This code is released under the MIT license (SPDX-License-Identifier: MIT)
import Carbon
import Cocoa
import Foundation
extension Date {
static func - (lhs: Date, rhs: Date) -> TimeInterval {
lhs.timeIntervalSinceReferenceDate - rhs.timeIntervalSinceReferenceDate
}
}
class ShiftKeyUpChecker {
init() {}
private static var checkModifier: NSEvent.ModifierFlags { NSEvent.ModifierFlags.shift }
private static var checkKeyCode: [UInt16] {
mgrPrefs.togglingAlphanumericalModeWithLShift
? [KeyCode.kShift.rawValue, KeyCode.kRightShift.rawValue]
: [KeyCode.kRightShift.rawValue]
}
private static let delayInterval = 0.3
private static var lastTime: Date = .init()
private static func checkModifierKeyUp(event: NSEvent) -> Bool {
if event.type == .flagsChanged,
event.modifierFlags.intersection(.deviceIndependentFlagsMask) == .init(rawValue: 0),
Date() - lastTime <= delayInterval
{
// modifier keyup event
lastTime = Date(timeInterval: -3600 * 4, since: Date())
return true
}
return false
}
private static func checkModifierKeyDown(event: NSEvent) -> Bool {
let isLeftShift = event.modifierFlags.rawValue & UInt(NX_DEVICELSHIFTKEYMASK) != 0
let isRightShift = event.modifierFlags.rawValue & UInt(NX_DEVICERSHIFTKEYMASK) != 0
print("isLeftShift: \(isLeftShift), isRightShift: \(isRightShift)")
let isKeyDown =
event.type == .flagsChanged
&& checkModifier.contains(event.modifierFlags.intersection(.deviceIndependentFlagsMask))
&& ShiftKeyUpChecker.checkKeyCode.contains(event.keyCode)
if isKeyDown {
// modifier keydown event
lastTime = Date()
} else {
lastTime = Date(timeInterval: -3600 * 4, since: Date())
}
return false
}
// To confirm that the shift key is "pressed-and-released".
public static func check(_ event: NSEvent) -> Bool {
ShiftKeyUpChecker.checkModifierKeyUp(event: event) || ShiftKeyUpChecker.checkModifierKeyDown(event: event)
}
}

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import SwiftUI import SwiftUI

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import SwiftUI import SwiftUI

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// The namespace for this package. /// The namespace for this package.
public enum Preferences {} public enum Preferences {}

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import SwiftUI import SwiftUI

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,22 +1,6 @@
// Copyright (c) 2018 and onwards Sindre Sorhus (MIT License). // Copyright (c) 2018 and onwards Sindre Sorhus (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import SwiftUI import SwiftUI

@ -1 +1 @@
Subproject commit 144db528de84caff0fa20802b144421bcc58419f Subproject commit 1d1224ee392d757526dc8aab6550e9d41dd3d784

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import InputMethodKit import InputMethodKit
@ -64,7 +48,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelega
} }
func userNotificationCenter(_: NSUserNotificationCenter, shouldPresent _: NSUserNotification) -> Bool { func userNotificationCenter(_: NSUserNotificationCenter, shouldPresent _: NSUserNotification) -> Bool {
return true true
} }
func applicationDidFinishLaunching(_: Notification) { func applicationDidFinishLaunching(_: Notification) {

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
@ -142,6 +126,7 @@ struct InputSignal: CustomStringConvertible {
private var cursorKeyClockRight: KeyCode = .kNone // 3 o'clock private var cursorKeyClockRight: KeyCode = .kNone // 3 o'clock
private var cursorKeyClockLeft: KeyCode = .kNone // 9 o'clock private var cursorKeyClockLeft: KeyCode = .kNone // 9 o'clock
private(set) var emacsKey: EmacsKey private(set) var emacsKey: EmacsKey
public var isASCIIModeInput: Bool = false
public init( public init(
inputText: String = "", keyCode: UInt16, charCode: UInt16, flags: NSEvent.ModifierFlags, inputText: String = "", keyCode: UInt16, charCode: UInt16, flags: NSEvent.ModifierFlags,
@ -264,7 +249,7 @@ struct InputSignal: CustomStringConvertible {
var isUpperCaseASCIILetterKey: Bool { (65...90).contains(charCode) && flags == .shift } var isUpperCaseASCIILetterKey: Bool { (65...90).contains(charCode) && flags == .shift }
// KeyCode macOS Apple // KeyCode macOS Apple
// ![input isShift] 使 Shift // ![input isShiftHold] 使 Shift
var isSymbolMenuPhysicalKey: Bool { var isSymbolMenuPhysicalKey: Bool {
[KeyCode.kSymbolMenuPhysicalKeyIntl, KeyCode.kSymbolMenuPhysicalKeyJIS].contains(KeyCode(rawValue: keyCode)) [KeyCode.kSymbolMenuPhysicalKeyIntl, KeyCode.kSymbolMenuPhysicalKeyJIS].contains(KeyCode(rawValue: keyCode))
} }

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
@ -190,24 +174,34 @@ public enum InputState {
init(composingBuffer: String, cursorIndex: Int, reading: String = "", nodeValuesArray: [String] = []) { init(composingBuffer: String, cursorIndex: Int, reading: String = "", nodeValuesArray: [String] = []) {
self.composingBuffer = composingBuffer self.composingBuffer = composingBuffer
self.reading = reading self.reading = reading
self.nodeValuesArray = nodeValuesArray // reading
if !reading.isEmpty {
var newNodeValuesArray = [String]()
var temporaryNode = ""
var charCounter = 0
for node in nodeValuesArray {
for char in node {
if charCounter == cursorIndex - reading.utf16.count {
newNodeValuesArray.append(temporaryNode)
temporaryNode = ""
newNodeValuesArray.append(reading)
}
temporaryNode += String(char)
charCounter += 1
}
newNodeValuesArray.append(temporaryNode)
temporaryNode = ""
}
self.nodeValuesArray = newNodeValuesArray
} else {
self.nodeValuesArray = nodeValuesArray
}
defer { self.cursorIndex = cursorIndex } defer { self.cursorIndex = cursorIndex }
} }
var attributedString: NSMutableAttributedString { var attributedString: NSMutableAttributedString {
/// ///
/// JIS /// JIS
guard reading.isEmpty else {
let attributedString = NSMutableAttributedString(
string: composingBufferConverted,
attributes: [
/// .thick
.underlineStyle: NSUnderlineStyle.single.rawValue,
.markedClauseSegment: 0,
]
)
return attributedString
}
let attributedString = NSMutableAttributedString(string: composingBufferConverted) let attributedString = NSMutableAttributedString(string: composingBufferConverted)
var newBegin = 0 var newBegin = 0
for (i, neta) in nodeValuesArray.enumerated() { for (i, neta) in nodeValuesArray.enumerated() {
@ -238,7 +232,8 @@ public enum InputState {
override init(composingBuffer: String, cursorIndex: Int, reading: String = "", nodeValuesArray: [String] = []) { override init(composingBuffer: String, cursorIndex: Int, reading: String = "", nodeValuesArray: [String] = []) {
super.init( super.init(
composingBuffer: composingBuffer, cursorIndex: cursorIndex, reading: reading, nodeValuesArray: nodeValuesArray) composingBuffer: composingBuffer, cursorIndex: cursorIndex, reading: reading, nodeValuesArray: nodeValuesArray
)
} }
override var description: String { override var description: String {
@ -342,12 +337,16 @@ public enum InputState {
var tooltipForInputting: String = "" var tooltipForInputting: String = ""
private(set) var readings: [String] private(set) var readings: [String]
init(composingBuffer: String, cursorIndex: Int, markerIndex: Int, readings: [String]) { init(
composingBuffer: String, cursorIndex: Int, markerIndex: Int, readings: [String], nodeValuesArray: [String] = []
) {
let begin = min(cursorIndex, markerIndex) let begin = min(cursorIndex, markerIndex)
let end = max(cursorIndex, markerIndex) let end = max(cursorIndex, markerIndex)
markedRange = begin..<end markedRange = begin..<end
self.readings = readings self.readings = readings
super.init(composingBuffer: composingBuffer, cursorIndex: cursorIndex) super.init(
composingBuffer: composingBuffer, cursorIndex: cursorIndex, nodeValuesArray: nodeValuesArray
)
defer { self.markerIndex = markerIndex } defer { self.markerIndex = markerIndex }
} }
@ -391,7 +390,9 @@ public enum InputState {
} }
var convertedToInputting: Inputting { var convertedToInputting: Inputting {
let state = Inputting(composingBuffer: composingBuffer, cursorIndex: cursorIndex) let state = Inputting(
composingBuffer: composingBuffer, cursorIndex: cursorIndex, reading: reading, nodeValuesArray: nodeValuesArray
)
state.tooltip = tooltipForInputting state.tooltip = tooltipForInputting
return state return state
} }
@ -438,10 +439,13 @@ public enum InputState {
private(set) var candidates: [(String, String)] private(set) var candidates: [(String, String)]
private(set) var isTypingVertical: Bool private(set) var isTypingVertical: Bool
init(composingBuffer: String, cursorIndex: Int, candidates: [(String, String)], isTypingVertical: Bool) { init(
composingBuffer: String, cursorIndex: Int, candidates: [(String, String)], isTypingVertical: Bool,
nodeValuesArray: [String] = []
) {
self.candidates = candidates self.candidates = candidates
self.isTypingVertical = isTypingVertical self.isTypingVertical = isTypingVertical
super.init(composingBuffer: composingBuffer, cursorIndex: cursorIndex) super.init(composingBuffer: composingBuffer, cursorIndex: cursorIndex, nodeValuesArray: nodeValuesArray)
} }
override var description: String { override var description: String {

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// 調 /// 調
/// Megrez Tekkon /// Megrez Tekkon
@ -51,6 +35,8 @@ public class KeyHandler {
let kEpsilon: Double = 0.000001 let kEpsilon: Double = 0.000001
/// ///
var isCursorCuttingChar = false var isCursorCuttingChar = false
///
var isTypingContentEmpty: Bool { composer.isEmpty && compositor.isEmpty }
/// ///
let kMaxComposingBufferNeedsToWalkSize = Int(max(12, ceil(Double(mgrPrefs.composingBufferSize) / 2))) let kMaxComposingBufferNeedsToWalkSize = Int(max(12, ceil(Double(mgrPrefs.composingBufferSize) / 2)))

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// 調 /// 調

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// KeyHandler.HandleInput() /// KeyHandler.HandleInput()

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// 調 IMK 調 /// 調 IMK 調
/// 調 /// 調
@ -83,7 +67,7 @@ extension KeyHandler {
|| input.isCursorForward || input.isCursorBackward || input.isCursorForward || input.isCursorBackward
{ {
// BackSpace // BackSpace
} else if input.isCapsLockOn { } else if input.isCapsLockOn || input.isASCIIModeInput {
// //
clear() clear()
stateCallback(InputState.Empty()) stateCallback(InputState.Empty())

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// 調調 /// 調調
@ -38,7 +22,7 @@ extension KeyHandler {
/// (Update the composing buffer) /// (Update the composing buffer)
/// NSAttributeString /// NSAttributeString
var tooltipParameterRef: [String] = ["", ""] var tooltipParameterRef: [String] = ["", ""]
let nodeValuesArray: [String] = walkedAnchors.map(\.node.currentPair.value) let nodeValuesArray: [String] = walkedAnchors.values
var composedStringCursorIndex = 0 var composedStringCursorIndex = 0
var readingCursorIndex = 0 var readingCursorIndex = 0
/// IMK UTF8 emoji /// IMK UTF8 emoji
@ -140,7 +124,8 @@ extension KeyHandler {
composingBuffer: currentState.composingBuffer, composingBuffer: currentState.composingBuffer,
cursorIndex: currentState.cursorIndex, cursorIndex: currentState.cursorIndex,
candidates: getCandidatesArray(fixOrder: mgrPrefs.useFixecCandidateOrderOnSelection), candidates: getCandidatesArray(fixOrder: mgrPrefs.useFixecCandidateOrderOnSelection),
isTypingVertical: isTypingVertical isTypingVertical: isTypingVertical,
nodeValuesArray: walkedAnchors.values
) )
} }
@ -211,7 +196,8 @@ extension KeyHandler {
composingBuffer: state.composingBuffer, composingBuffer: state.composingBuffer,
cursorIndex: state.cursorIndex, cursorIndex: state.cursorIndex,
markerIndex: index, markerIndex: index,
readings: state.readings readings: state.readings,
nodeValuesArray: walkedAnchors.values
) )
marking.tooltipForInputting = state.tooltipForInputting marking.tooltipForInputting = state.tooltipForInputting
stateCallback(marking.markedRange.isEmpty ? marking.convertedToInputting : marking) stateCallback(marking.markedRange.isEmpty ? marking.convertedToInputting : marking)
@ -232,7 +218,8 @@ extension KeyHandler {
composingBuffer: state.composingBuffer, composingBuffer: state.composingBuffer,
cursorIndex: state.cursorIndex, cursorIndex: state.cursorIndex,
markerIndex: index, markerIndex: index,
readings: state.readings readings: state.readings,
nodeValuesArray: walkedAnchors.values
) )
marking.tooltipForInputting = state.tooltipForInputting marking.tooltipForInputting = state.tooltipForInputting
stateCallback(marking.markedRange.isEmpty ? marking.convertedToInputting : marking) stateCallback(marking.markedRange.isEmpty ? marking.convertedToInputting : marking)

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// (c) 2022 and onwards The vChewing Project (MIT-NTL License). // (c) 2022 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import InputMethodKit import InputMethodKit
@ -52,6 +36,15 @@ class ctlInputMethod: IMKInputController {
var keyHandler: KeyHandler = .init() var keyHandler: KeyHandler = .init()
/// ///
var state: InputStateProtocol = InputState.Empty() var state: InputStateProtocol = InputState.Empty()
/// ctlInputMethod
var isASCIIMode: Bool = false
/// ctlInputMethod
func toggleASCIIMode() -> Bool {
resetKeyHandler()
isASCIIMode = !isASCIIMode
return isASCIIMode
}
// MARK: - // MARK: -
@ -84,9 +77,8 @@ class ctlInputMethod: IMKInputController {
super.init(server: server, delegate: delegate, client: inputClient) super.init(server: server, delegate: delegate, client: inputClient)
keyHandler.delegate = self keyHandler.delegate = self
// //
activateServer(inputClient)
keyHandler.ensureParser()
resetKeyHandler() resetKeyHandler()
activateServer(inputClient)
} }
// MARK: - IMKStateSetting // MARK: - IMKStateSetting
@ -100,10 +92,20 @@ class ctlInputMethod: IMKInputController {
// activateServer nil // activateServer nil
// //
if keyHandler.delegate == nil { keyHandler.delegate = self } if keyHandler.delegate == nil { keyHandler.delegate = self }
setValue(IME.currentInputMode.rawValue, forTag: 114514, client: client()) setValue(IME.currentInputMode.rawValue, forTag: 114_514, client: client())
keyHandler.clear() keyHandler.clear()
keyHandler.ensureParser() keyHandler.ensureParser()
if isASCIIMode {
NotifierController.notify(
message: String(
format: "%@%@%@", NSLocalizedString("Alphanumerical Mode", comment: ""), "\n",
isASCIIMode
? NSLocalizedString("NotificationSwitchON", comment: "")
: NSLocalizedString("NotificationSwitchOFF", comment: "")
))
}
/// ///
/// macOS /// macOS
if client().bundleIdentifier() != Bundle.main.bundleIdentifier { if client().bundleIdentifier() != Bundle.main.bundleIdentifier {
@ -183,13 +185,24 @@ class ctlInputMethod: IMKInputController {
/// - Returns: `true` IMK`false` /// - Returns: `true` IMK`false`
@objc(handleEvent:client:) override func handle(_ event: NSEvent!, client sender: Any!) -> Bool { @objc(handleEvent:client:) override func handle(_ event: NSEvent!, client sender: Any!) -> Bool {
_ = sender // _ = sender //
// Shift
if ShiftKeyUpChecker.check(event) {
NotifierController.notify(
message: String(
format: "%@%@%@", NSLocalizedString("Alphanumerical Mode", comment: ""), "\n",
toggleASCIIMode()
? NSLocalizedString("NotificationSwitchON", comment: "")
: NSLocalizedString("NotificationSwitchOFF", comment: "")
))
return false
}
/// flags使 KeyHandler /// flags使 KeyHandler
/// flags /// flags
/// event.type == .flagsChanged return false /// event.type == .flagsChanged return false
/// NSInternalInconsistencyException /// NSInternalInconsistencyException
if event.type == .flagsChanged { if event.type == .flagsChanged { return false }
return false
}
// Enter // Enter
ctlInputMethod.areWeDeleting = event.modifierFlags.contains([.shift, .command]) ctlInputMethod.areWeDeleting = event.modifierFlags.contains([.shift, .command])
@ -211,7 +224,8 @@ class ctlInputMethod: IMKInputController {
IME.areWeUsingOurOwnPhraseEditor = false IME.areWeUsingOurOwnPhraseEditor = false
} }
let input = InputSignal(event: event, isVerticalTyping: isTypingVertical) var input = InputSignal(event: event, isVerticalTyping: isTypingVertical)
input.isASCIIModeInput = isASCIIMode
// //
// KeyHandler // KeyHandler

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
@ -70,52 +54,7 @@ extension ctlInputMethod: KeyHandlerDelegate {
// MARK: - Candidate Controller Delegate // MARK: - Candidate Controller Delegate
extension ctlInputMethod: ctlCandidateDelegate { extension ctlInputMethod: ctlCandidateDelegate {
func handleDelegateEvent(_ event: NSEvent!) -> Bool { func handleDelegateEvent(_ event: NSEvent!) -> Bool { handle(event, client: client()) }
/// flags使 KeyHandler
/// flags
/// event.type == .flagsChanged return false
/// NSInternalInconsistencyException
if event.type == .flagsChanged {
return false
}
// Enter
ctlInputMethod.areWeDeleting = event.modifierFlags.contains([.shift, .command])
var textFrame = NSRect.zero
let attributes: [AnyHashable: Any]? = client().attributes(
forCharacterIndex: 0, lineHeightRectangle: &textFrame
)
let isTypingVertical =
(attributes?["IMKTextOrientation"] as? NSNumber)?.intValue == 0 || false
if client().bundleIdentifier()
== "org.atelierInmu.vChewing.vChewingPhraseEditor"
{
IME.areWeUsingOurOwnPhraseEditor = true
} else {
IME.areWeUsingOurOwnPhraseEditor = false
}
let input = InputSignal(event: event, isVerticalTyping: isTypingVertical)
//
// KeyHandler
if !input.charCode.isPrintable {
return false
}
/// 調
/// result bool IMK
let result = keyHandler.handleCandidate(state: state, input: input) { newState in
self.handle(state: newState)
} errorCallback: {
clsSFX.beep()
}
return result
}
func candidateCountForController(_ controller: ctlCandidateProtocol) -> Int { func candidateCountForController(_ controller: ctlCandidateProtocol) -> Int {
_ = controller // _ = controller //

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Carbon import Carbon
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Carbon import Carbon
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,34 +1,19 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
public enum UserDef: String, CaseIterable { public enum UserDef: String, CaseIterable {
case kIsDebugModeEnabled = "_DebugMode" case kIsDebugModeEnabled = "_DebugMode"
case kFailureFlagForUOMObservation = "_FailureFlag_UOMObservation" case kFailureFlagForUOMObservation = "_FailureFlag_UOMObservation"
case kDeltaOfCalendarYears = "DeltaOfCalendarYears"
case kMostRecentInputMode = "MostRecentInputMode" case kMostRecentInputMode = "MostRecentInputMode"
case kUserDataFolderSpecified = "UserDataFolderSpecified" case kUserDataFolderSpecified = "UserDataFolderSpecified"
case kCheckUpdateAutomatically = "CheckUpdateAutomatically" case kCheckUpdateAutomatically = "CheckUpdateAutomatically"
@ -40,7 +25,6 @@ public enum UserDef: String, CaseIterable {
case kShouldAutoReloadUserDataFiles = "ShouldAutoReloadUserDataFiles" case kShouldAutoReloadUserDataFiles = "ShouldAutoReloadUserDataFiles"
case kUseRearCursorMode = "useRearCursorMode" case kUseRearCursorMode = "useRearCursorMode"
case kUseHorizontalCandidateList = "UseHorizontalCandidateList" case kUseHorizontalCandidateList = "UseHorizontalCandidateList"
case kComposingBufferSize = "ComposingBufferSize"
case kChooseCandidateUsingSpace = "ChooseCandidateUsingSpace" case kChooseCandidateUsingSpace = "ChooseCandidateUsingSpace"
case kCNS11643Enabled = "CNS11643Enabled" case kCNS11643Enabled = "CNS11643Enabled"
case kSymbolInputEnabled = "SymbolInputEnabled" case kSymbolInputEnabled = "SymbolInputEnabled"
@ -63,6 +47,7 @@ public enum UserDef: String, CaseIterable {
case kAutoCorrectReadingCombination = "AutoCorrectReadingCombination" case kAutoCorrectReadingCombination = "AutoCorrectReadingCombination"
case kAlsoConfirmAssociatedCandidatesByEnter = "AlsoConfirmAssociatedCandidatesByEnter" case kAlsoConfirmAssociatedCandidatesByEnter = "AlsoConfirmAssociatedCandidatesByEnter"
case kKeepReadingUponCompositionError = "KeepReadingUponCompositionError" case kKeepReadingUponCompositionError = "KeepReadingUponCompositionError"
case kTogglingAlphanumericalModeWithLShift = "TogglingAlphanumericalModeWithLShift"
case kCandidateTextFontName = "CandidateTextFontName" case kCandidateTextFontName = "CandidateTextFontName"
case kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" case kCandidateKeyLabelFontName = "CandidateKeyLabelFontName"
@ -243,6 +228,9 @@ public enum mgrPrefs {
UserDefaults.standard.setDefault( UserDefaults.standard.setDefault(
mgrPrefs.failureFlagForUOMObservation, forKey: UserDef.kFailureFlagForUOMObservation.rawValue mgrPrefs.failureFlagForUOMObservation, forKey: UserDef.kFailureFlagForUOMObservation.rawValue
) )
UserDefaults.standard.setDefault(
mgrPrefs.deltaOfCalendarYears, forKey: UserDef.kDeltaOfCalendarYears.rawValue
)
UserDefaults.standard.setDefault(mgrPrefs.mostRecentInputMode, forKey: UserDef.kMostRecentInputMode.rawValue) UserDefaults.standard.setDefault(mgrPrefs.mostRecentInputMode, forKey: UserDef.kMostRecentInputMode.rawValue)
UserDefaults.standard.setDefault( UserDefaults.standard.setDefault(
mgrPrefs.checkUpdateAutomatically, forKey: UserDef.kCheckUpdateAutomatically.rawValue mgrPrefs.checkUpdateAutomatically, forKey: UserDef.kCheckUpdateAutomatically.rawValue
@ -317,6 +305,9 @@ public enum mgrPrefs {
UserDefaults.standard.setDefault( UserDefaults.standard.setDefault(
mgrPrefs.keepReadingUponCompositionError, forKey: UserDef.kKeepReadingUponCompositionError.rawValue mgrPrefs.keepReadingUponCompositionError, forKey: UserDef.kKeepReadingUponCompositionError.rawValue
) )
UserDefaults.standard.setDefault(
mgrPrefs.togglingAlphanumericalModeWithLShift, forKey: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue
)
UserDefaults.standard.setDefault(mgrPrefs.usingHotKeySCPC, forKey: UserDef.kUsingHotKeySCPC.rawValue) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeySCPC, forKey: UserDef.kUsingHotKeySCPC.rawValue)
UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates.rawValue) UserDefaults.standard.setDefault(mgrPrefs.usingHotKeyAssociates, forKey: UserDef.kUsingHotKeyAssociates.rawValue)
@ -333,12 +324,17 @@ public enum mgrPrefs {
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
} }
// MARK: - Settings (Tier 1)
@UserDefault(key: UserDef.kIsDebugModeEnabled.rawValue, defaultValue: false) @UserDefault(key: UserDef.kIsDebugModeEnabled.rawValue, defaultValue: false)
static var isDebugModeEnabled: Bool static var isDebugModeEnabled: Bool
@UserDefault(key: UserDef.kFailureFlagForUOMObservation.rawValue, defaultValue: false) @UserDefault(key: UserDef.kFailureFlagForUOMObservation.rawValue, defaultValue: false)
static var failureFlagForUOMObservation: Bool static var failureFlagForUOMObservation: Bool
@UserDefault(key: UserDef.kDeltaOfCalendarYears.rawValue, defaultValue: -2000)
static var deltaOfCalendarYears: Int
@UserDefault(key: UserDef.kMostRecentInputMode.rawValue, defaultValue: "") @UserDefault(key: UserDef.kMostRecentInputMode.rawValue, defaultValue: "")
static var mostRecentInputMode: String static var mostRecentInputMode: String
@ -392,8 +388,7 @@ public enum mgrPrefs {
@UserDefault(key: UserDef.kUseHorizontalCandidateList.rawValue, defaultValue: true) @UserDefault(key: UserDef.kUseHorizontalCandidateList.rawValue, defaultValue: true)
static var useHorizontalCandidateList: Bool static var useHorizontalCandidateList: Bool
@ComposingBufferSize(key: UserDef.kComposingBufferSize.rawValue) static var composingBufferSize: Int { 30 }
static var composingBufferSize: Int
@UserDefault(key: UserDef.kChooseCandidateUsingSpace.rawValue, defaultValue: true) @UserDefault(key: UserDef.kChooseCandidateUsingSpace.rawValue, defaultValue: true)
static var chooseCandidateUsingSpace: Bool static var chooseCandidateUsingSpace: Bool
@ -416,6 +411,11 @@ public enum mgrPrefs {
@UserDefault(key: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue, defaultValue: false) @UserDefault(key: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue, defaultValue: false)
static var keepReadingUponCompositionError: Bool static var keepReadingUponCompositionError: Bool
// MARK: - Settings (Tier 2)
@UserDefault(key: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue, defaultValue: true)
static var togglingAlphanumericalModeWithLShift: Bool
static var minCandidateLength: Int { static var minCandidateLength: Int {
mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2 mgrPrefs.allowBoostingSingleKanjiAsUserPhrase ? 1 : 2
} }

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation
@ -221,6 +205,9 @@ extension vChewing {
rawAllUnigrams += vChewing.LMInstantiator.lmSymbols.unigramsFor(key: key) rawAllUnigrams += vChewing.LMInstantiator.lmSymbols.unigramsFor(key: key)
} }
//
rawAllUnigrams.append(contentsOf: queryDateTimeUnigrams(with: key))
// Swift 使 NSOrderedSet // Swift 使 NSOrderedSet
var filteredPairs: Set<Megrez.KeyValuePaired> = [] var filteredPairs: Set<Megrez.KeyValuePaired> = []

View File

@ -0,0 +1,94 @@
// Copyright (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 Foundation
// MARK: - 便
extension vChewing.LMInstantiator {
func queryDateTimeUnigrams(with key: String = "") -> [Megrez.Unigram] {
if !["ㄖˋ-ㄑㄧ", "ㄖˋ-ㄑㄧˊ", "ㄕˊ-ㄐㄧㄢ", "ㄒㄧㄥ-ㄑㄧ", "ㄒㄧㄥ-ㄑㄧˊ"].contains(key) { return .init() }
var results = [Megrez.Unigram]()
let theLocale = Locale(identifier: "zh-Hant")
let currentDate = Date()
var delta = DateComponents()
let thisYear = Calendar.current.dateComponents([.year], from: currentDate).year ?? 2018
delta.year = max(min(mgrPrefs.deltaOfCalendarYears, 0), thisYear * -1)
let currentDateShortened = Calendar.current.date(byAdding: delta, to: currentDate)
switch key {
case "ㄖˋ-ㄑㄧ", "ㄖˋ-ㄑㄧˊ":
let formatterDate1 = DateFormatter()
let formatterDate2 = DateFormatter()
formatterDate1.dateFormat = "yyyy-MM-dd"
formatterDate2.dateFormat = "yyyy年MM月dd日"
let date1 = formatterDate1.string(from: currentDate)
let date2 = formatterDate2.string(from: currentDate)
var date3 = ChineseConverter.convertArabicNumeralsToChinese(target: date2)
date3 = date3.replacingOccurrences(of: "年〇", with: "")
date3 = date3.replacingOccurrences(of: "月〇", with: "")
results.append(.init(keyValue: .init(key: key, value: date1), score: -94))
results.append(.init(keyValue: .init(key: key, value: date2), score: -95))
results.append(.init(keyValue: .init(key: key, value: date3), score: -96))
if let currentDateShortened = currentDateShortened, delta.year != 0 {
var dateAlt1: String = formatterDate1.string(from: currentDateShortened)
dateAlt1.regReplace(pattern: #"^0+"#)
var dateAlt2: String = formatterDate2.string(from: currentDateShortened)
dateAlt2.regReplace(pattern: #"^0+"#)
var dateAlt3 = ChineseConverter.convertArabicNumeralsToChinese(target: dateAlt2)
dateAlt3 = dateAlt3.replacingOccurrences(of: "年〇", with: "")
dateAlt3 = dateAlt3.replacingOccurrences(of: "月〇", with: "")
results.append(.init(keyValue: .init(key: key, value: dateAlt1), score: -97))
results.append(.init(keyValue: .init(key: key, value: dateAlt2), score: -98))
results.append(.init(keyValue: .init(key: key, value: dateAlt3), score: -99))
}
case "ㄕˊ-ㄐㄧㄢ":
let formatterTime1 = DateFormatter()
let formatterTime2 = DateFormatter()
let formatterTime3 = DateFormatter()
formatterTime1.dateFormat = "HH:mm"
formatterTime2.dateFormat = IME.currentInputMode == .imeModeCHS ? "HH点mm分" : "HH點mm分"
formatterTime3.dateFormat = IME.currentInputMode == .imeModeCHS ? "HH时mm分" : "HH時mm分"
let time1 = formatterTime1.string(from: currentDate)
let time2 = formatterTime2.string(from: currentDate)
let time3 = formatterTime3.string(from: currentDate)
results.append(.init(keyValue: .init(key: key, value: time1), score: -97))
results.append(.init(keyValue: .init(key: key, value: time2), score: -98))
results.append(.init(keyValue: .init(key: key, value: time3), score: -99))
case "ㄒㄧㄥ-ㄑㄧ", "ㄒㄧㄥ-ㄑㄧˊ":
let formatterWeek1 = DateFormatter()
let formatterWeek2 = DateFormatter()
formatterWeek1.dateFormat = "EEEE"
formatterWeek2.dateFormat = "EE"
formatterWeek1.locale = theLocale
formatterWeek2.locale = theLocale
let week1 = formatterWeek1.string(from: currentDate)
let week2 = formatterWeek2.string(from: currentDate)
results.append(.init(keyValue: .init(key: key, value: week1), score: -98))
results.append(.init(keyValue: .init(key: key, value: week2), score: -99))
default: return .init()
}
return results
}
}
// MARK: - String Extension
extension String {
fileprivate mutating func regReplace(pattern: String, replaceWith: String = "") {
// Ref: https://stackoverflow.com/a/40993403/4162914 && https://stackoverflow.com/a/71291137/4162914
do {
let regex = try NSRegularExpression(
pattern: pattern, options: [.caseInsensitive, .anchorsMatchLines]
)
let range = NSRange(startIndex..., in: self)
self = regex.stringByReplacingMatches(
in: self, options: [], range: range, withTemplate: replaceWith
)
} catch { return }
}
}

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,27 +1,11 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License). // StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,27 +1,11 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License). // StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,27 +1,11 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License). // StringView Ranges extension by (c) 2022 and onwards Isaac Xen (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,27 +1,11 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the Cpp version of this class by Mengjuei Hsieh (MIT License). // Refactored from the Cpp version of this class by Mengjuei Hsieh (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
// Refactored from the ObjCpp-version of this class by: // Refactored from the ObjCpp-version of this class by:
// (c) 2011 and onwards The OpenVanilla Project (MIT License). // (c) 2011 and onwards The OpenVanilla Project (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/// The namespace for this package. /// The namespace for this package.
public enum Megrez {} public enum Megrez {}

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
public protocol LangModelProtocol { public protocol LangModelProtocol {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,27 +1,11 @@
// Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License). // Swiftified by (c) 2022 and onwards The vChewing Project (MIT-NTL License).
// Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License). // Rebranded from (c) Lukhnos Liu's C++ library "Gramambular" (MIT License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
extension Megrez { extension Megrez {
/// ///

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import AVFoundation import AVFoundation
import Foundation import Foundation

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import InputMethodKit import InputMethodKit

View File

@ -67,6 +67,7 @@
"Optimize Memorized Phrases" = "Optimize Memorized Phrases"; "Optimize Memorized Phrases" = "Optimize Memorized Phrases";
"Clear Memorized Phrases" = "Clear Memorized Phrases"; "Clear Memorized Phrases" = "Clear Memorized Phrases";
"Currency Numeral Output" = "Currency Numeral Output"; "Currency Numeral Output" = "Currency Numeral Output";
"Alphanumerical Mode" = "Alphanumerical Mode";
// The followings are the category names used in the Symbol menu. // The followings are the category names used in the Symbol menu.
"catCommonSymbols" = "CommonSymbols"; "catCommonSymbols" = "CommonSymbols";
@ -90,6 +91,7 @@
"Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings"; "Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings";
"Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji"; "Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji";
"Allow using Enter key to confirm associated candidate selection" = "Allow using Enter key to confirm associated candidate selection"; "Allow using Enter key to confirm associated candidate selection" = "Allow using Enter key to confirm associated candidate selection";
"Also toggle alphanumerical mode with Left-Shift" = "Also toggle alphanumerical mode with Left-Shift";
"Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window"; "Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window";
"An accomodation for elder computer users." = "An accomodation for elder computer users."; "An accomodation for elder computer users." = "An accomodation for elder computer users.";
"Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)"; "Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)";
@ -103,7 +105,6 @@
"Automatically correct reading combinations when typing" = "Automatically correct reading combinations when typing"; "Automatically correct reading combinations when typing" = "Automatically correct reading combinations when typing";
"Automatically reload user data files if changes detected" = "Automatically reload user data files if changes detected"; "Automatically reload user data files if changes detected" = "Automatically reload user data files if changes detected";
"Basic Keyboard Layout:" = "Basic Keyboard Layout:"; "Basic Keyboard Layout:" = "Basic Keyboard Layout:";
"Buffer Limit:" = "Buffer Limit:";
"Candidate Layout:" = "Candidate Layout:"; "Candidate Layout:" = "Candidate Layout:";
"Candidate Size:" = "Candidate Size:"; "Candidate Size:" = "Candidate Size:";
"Change user interface language (will reboot the IME)." = "Change user interface language (will reboot the IME)."; "Change user interface language (will reboot the IME)." = "Change user interface language (will reboot the IME).";
@ -157,10 +158,8 @@
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip"; "Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip";
"Show page buttons in candidate window" = "Show page buttons in candidate window"; "Show page buttons in candidate window" = "Show page buttons in candidate window";
"Simplified Chinese" = "Simplified Chinese"; "Simplified Chinese" = "Simplified Chinese";
"Space & ESC Key:" = "Space & ESC Key:";
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages"; "Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates"; "Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates";
"Specify the maximum characters allowed in the composition buffer." = "Specify the maximum characters allowed in the composition buffer.";
"Starlight" = "Starlight"; "Starlight" = "Starlight";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)"; "Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)";
"Traditional Chinese" = "Traditional Chinese"; "Traditional Chinese" = "Traditional Chinese";

View File

@ -67,6 +67,7 @@
"Optimize Memorized Phrases" = "Optimize Memorized Phrases"; "Optimize Memorized Phrases" = "Optimize Memorized Phrases";
"Clear Memorized Phrases" = "Clear Memorized Phrases"; "Clear Memorized Phrases" = "Clear Memorized Phrases";
"Currency Numeral Output" = "Currency Numeral Output"; "Currency Numeral Output" = "Currency Numeral Output";
"Alphanumerical Mode" = "Alphanumerical Mode";
// The followings are the category names used in the Symbol menu. // The followings are the category names used in the Symbol menu.
"catCommonSymbols" = "CommonSymbols"; "catCommonSymbols" = "CommonSymbols";
@ -90,6 +91,7 @@
"Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings"; "Allow backspace-editing miscomposed readings" = "Allow backspace-editing miscomposed readings";
"Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji"; "Allow boosting / excluding a candidate of single kanji" = "Allow boosting / excluding a candidate of single kanji";
"Allow using Enter key to confirm associated candidate selection" = "Allow using Enter key to confirm associated candidate selection"; "Allow using Enter key to confirm associated candidate selection" = "Allow using Enter key to confirm associated candidate selection";
"Also toggle alphanumerical mode with Left-Shift" = "Also toggle alphanumerical mode with Left-Shift";
"Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window"; "Always use fixed listing order in candidate window" = "Always use fixed listing order in candidate window";
"An accomodation for elder computer users." = "An accomodation for elder computer users."; "An accomodation for elder computer users." = "An accomodation for elder computer users.";
"Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)"; "Apple ABC (equivalent to English US)" = "Apple ABC (equivalent to English US)";
@ -103,7 +105,6 @@
"Automatically correct reading combinations when typing" = "Automatically correct reading combinations when typing"; "Automatically correct reading combinations when typing" = "Automatically correct reading combinations when typing";
"Automatically reload user data files if changes detected" = "Automatically reload user data files if changes detected"; "Automatically reload user data files if changes detected" = "Automatically reload user data files if changes detected";
"Basic Keyboard Layout:" = "Basic Keyboard Layout:"; "Basic Keyboard Layout:" = "Basic Keyboard Layout:";
"Buffer Limit:" = "Buffer Limit:";
"Candidate Layout:" = "Candidate Layout:"; "Candidate Layout:" = "Candidate Layout:";
"Candidate Size:" = "Candidate Size:"; "Candidate Size:" = "Candidate Size:";
"Change user interface language (will reboot the IME)." = "Change user interface language (will reboot the IME)."; "Change user interface language (will reboot the IME)." = "Change user interface language (will reboot the IME).";
@ -157,10 +158,8 @@
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip"; "Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "Show Hanyu-Pinyin in the inline composition buffer & tooltip";
"Show page buttons in candidate window" = "Show page buttons in candidate window"; "Show page buttons in candidate window" = "Show page buttons in candidate window";
"Simplified Chinese" = "Simplified Chinese"; "Simplified Chinese" = "Simplified Chinese";
"Space & ESC Key:" = "Space & ESC Key:";
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages"; "Space to +cycle candidates, Shift+Space to +cycle pages" = "Space to +cycle candidates, Shift+Space to +cycle pages";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates"; "Space to +cycle pages, Shift+Space to +cycle candidates" = "Space to +cycle pages, Shift+Space to +cycle candidates";
"Specify the maximum characters allowed in the composition buffer." = "Specify the maximum characters allowed in the composition buffer.";
"Starlight" = "Starlight"; "Starlight" = "Starlight";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)"; "Stop farting (when typed phonetic combination is invalid, etc.)" = "Stop farting (when typed phonetic combination is invalid, etc.)";
"Traditional Chinese" = "Traditional Chinese"; "Traditional Chinese" = "Traditional Chinese";

View File

@ -67,6 +67,7 @@
"Optimize Memorized Phrases" = "臨時記憶資料を整う"; "Optimize Memorized Phrases" = "臨時記憶資料を整う";
"Clear Memorized Phrases" = "臨時記憶資料を削除"; "Clear Memorized Phrases" = "臨時記憶資料を削除";
"Currency Numeral Output" = "数字大字変換"; "Currency Numeral Output" = "数字大字変換";
"Alphanumerical Mode" = "英数入力モード";
// The followings are the category names used in the Symbol menu. // The followings are the category names used in the Symbol menu.
"catCommonSymbols" = "常用"; "catCommonSymbols" = "常用";
@ -90,6 +91,7 @@
"Allow backspace-editing miscomposed readings" = "効かぬ音読みを BackSpace で再編集"; "Allow backspace-editing miscomposed readings" = "効かぬ音読みを BackSpace で再編集";
"Allow boosting / excluding a candidate of single kanji" = "即排除/即最優先にできる候補の文字数の最低限は1字とする"; "Allow boosting / excluding a candidate of single kanji" = "即排除/即最優先にできる候補の文字数の最低限は1字とする";
"Allow using Enter key to confirm associated candidate selection" = "Enter キーを連想語彙候補の確認のために使う"; "Allow using Enter key to confirm associated candidate selection" = "Enter キーを連想語彙候補の確認のために使う";
"Also toggle alphanumerical mode with Left-Shift" = "左側の Shift キーでも英数入力モードの切り替え";
"Always use fixed listing order in candidate window" = "候補文字を固定順番で陳列する"; "Always use fixed listing order in candidate window" = "候補文字を固定順番で陳列する";
"An accomodation for elder computer users." = "年配なるユーザーのために提供した機能である。"; "An accomodation for elder computer users." = "年配なるユーザーのために提供した機能である。";
"Apple ABC (equivalent to English US)" = "Apple ABC (Apple U.S. キーボードと同じ)"; "Apple ABC (equivalent to English US)" = "Apple ABC (Apple U.S. キーボードと同じ)";
@ -103,7 +105,6 @@
"Automatically correct reading combinations when typing" = "入力中で打ち間違った発音組み合わせを自動的に訂正する"; "Automatically correct reading combinations when typing" = "入力中で打ち間違った発音組み合わせを自動的に訂正する";
"Automatically reload user data files if changes detected" = "ユーザー辞書データの変更を自動検出し、自動的に再読込"; "Automatically reload user data files if changes detected" = "ユーザー辞書データの変更を自動検出し、自動的に再読込";
"Basic Keyboard Layout:" = "基礎キーボード:"; "Basic Keyboard Layout:" = "基礎キーボード:";
"Buffer Limit:" = "緩衝列の容量:";
"Candidate Layout:" = "入力候補陳列の仕様"; "Candidate Layout:" = "入力候補陳列の仕様";
"Candidate Size:" = "候補文字の字号:"; "Candidate Size:" = "候補文字の字号:";
"Change user interface language (will reboot the IME)." = "アプリ表示用言語をご指定下さい、そして入力アプリは自動的に再起動。"; "Change user interface language (will reboot the IME)." = "アプリ表示用言語をご指定下さい、そして入力アプリは自動的に再起動。";
@ -157,10 +158,8 @@
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "弁音合併入力(入力緩衝列とヒントで音読みを漢語弁音に)"; "Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "弁音合併入力(入力緩衝列とヒントで音読みを漢語弁音に)";
"Show page buttons in candidate window" = "入力候補陳列の側にページボタンを表示"; "Show page buttons in candidate window" = "入力候補陳列の側にページボタンを表示";
"Simplified Chinese" = "簡体中国語"; "Simplified Chinese" = "簡体中国語";
"Space & ESC Key:" = "ESC と Space:";
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+Space で次のページ、Space で次の候補文字を"; "Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+Space で次のページ、Space で次の候補文字を";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "Space で次のページ、Shift+Space で次の候補文字を"; "Space to +cycle pages, Shift+Space to +cycle candidates" = "Space で次のページ、Shift+Space で次の候補文字を";
"Specify the maximum characters allowed in the composition buffer." = "緩衝列に入れる文字の数の上限をご指定ください。";
"Starlight" = "星光配列"; "Starlight" = "星光配列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "マナーモード // 外すと入力間違った時に変な声が出る"; "Stop farting (when typed phonetic combination is invalid, etc.)" = "マナーモード // 外すと入力間違った時に変な声が出る";
"Traditional Chinese" = "繁体中国語"; "Traditional Chinese" = "繁体中国語";

View File

@ -67,6 +67,7 @@
"Optimize Memorized Phrases" = "精简临时记忆语汇资料"; "Optimize Memorized Phrases" = "精简临时记忆语汇资料";
"Clear Memorized Phrases" = "清除临时记忆语汇资料"; "Clear Memorized Phrases" = "清除临时记忆语汇资料";
"Currency Numeral Output" = "大写汉字数字输出"; "Currency Numeral Output" = "大写汉字数字输出";
"Alphanumerical Mode" = "英数输入模式";
// The followings are the category names used in the Symbol menu. // The followings are the category names used in the Symbol menu.
"catCommonSymbols" = "常用"; "catCommonSymbols" = "常用";
@ -90,6 +91,7 @@
"Allow backspace-editing miscomposed readings" = "允许对无效的读音使用 BackSpace 编辑"; "Allow backspace-editing miscomposed readings" = "允许对无效的读音使用 BackSpace 编辑";
"Allow boosting / excluding a candidate of single kanji" = "将可以就地升权/排除的候选字词的最短词长设为单个汉字"; "Allow boosting / excluding a candidate of single kanji" = "将可以就地升权/排除的候选字词的最短词长设为单个汉字";
"Allow using Enter key to confirm associated candidate selection" = "允许使用 Enter 确认当前选中的联想词"; "Allow using Enter key to confirm associated candidate selection" = "允许使用 Enter 确认当前选中的联想词";
"Also toggle alphanumerical mode with Left-Shift" = "也允许使用左侧的 Shift 键盘切换英数输入模式";
"Always use fixed listing order in candidate window" = "以固定顺序来陈列选字窗内的候选字"; "Always use fixed listing order in candidate window" = "以固定顺序来陈列选字窗内的候选字";
"An accomodation for elder computer users." = "针对年长使用者的习惯而提供。"; "An accomodation for elder computer users." = "针对年长使用者的习惯而提供。";
"Apple ABC (equivalent to English US)" = "Apple ABC (与 Apple 美规键盘等价)"; "Apple ABC (equivalent to English US)" = "Apple ABC (与 Apple 美规键盘等价)";
@ -103,7 +105,6 @@
"Automatically correct reading combinations when typing" = "敲字时自动纠正读音组合"; "Automatically correct reading combinations when typing" = "敲字时自动纠正读音组合";
"Automatically reload user data files if changes detected" = "自动检测并载入使用者语汇档案变更"; "Automatically reload user data files if changes detected" = "自动检测并载入使用者语汇档案变更";
"Basic Keyboard Layout:" = "基础键盘布局:"; "Basic Keyboard Layout:" = "基础键盘布局:";
"Buffer Limit:" = "组字区容量:";
"Candidate Layout:" = "候选字窗布局:"; "Candidate Layout:" = "候选字窗布局:";
"Candidate Size:" = "候选字窗字号:"; "Candidate Size:" = "候选字窗字号:";
"Change user interface language (will reboot the IME)." = "变更输入法介面语言,会自动重启输入法。"; "Change user interface language (will reboot the IME)." = "变更输入法介面语言,会自动重启输入法。";
@ -158,10 +159,8 @@
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音并击(组字区与工具提示内显示汉语拼音)"; "Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音并击(组字区与工具提示内显示汉语拼音)";
"Show page buttons in candidate window" = "在选字窗内显示翻页按钮"; "Show page buttons in candidate window" = "在选字窗内显示翻页按钮";
"Simplified Chinese" = "简体中文"; "Simplified Chinese" = "简体中文";
"Space & ESC Key:" = "ESC 与空格键:";
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格键 换下一页,空格键 换选下一个后选字"; "Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格键 换下一页,空格键 换选下一个后选字";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "空格键 换下一页Shift+空格键 换选下一个后选字"; "Space to +cycle pages, Shift+Space to +cycle candidates" = "空格键 换下一页Shift+空格键 换选下一个后选字";
"Specify the maximum characters allowed in the composition buffer." = "请指定组字缓冲区内的文字数的上限。";
"Starlight" = "星光排列"; "Starlight" = "星光排列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "廉耻模式 // 取消勾选的话,敲错字时会有异音"; "Stop farting (when typed phonetic combination is invalid, etc.)" = "廉耻模式 // 取消勾选的话,敲错字时会有异音";
"Traditional Chinese" = "繁体中文"; "Traditional Chinese" = "繁体中文";

View File

@ -67,6 +67,7 @@
"Optimize Memorized Phrases" = "精簡臨時記憶語彙資料"; "Optimize Memorized Phrases" = "精簡臨時記憶語彙資料";
"Clear Memorized Phrases" = "清除臨時記憶語彙資料"; "Clear Memorized Phrases" = "清除臨時記憶語彙資料";
"Currency Numeral Output" = "大寫漢字數字輸出"; "Currency Numeral Output" = "大寫漢字數字輸出";
"Alphanumerical Mode" = "英數輸入模式";
// The followings are the category names used in the Symbol menu. // The followings are the category names used in the Symbol menu.
"catCommonSymbols" = "常用"; "catCommonSymbols" = "常用";
@ -90,6 +91,7 @@
"Allow backspace-editing miscomposed readings" = "允許對無效的讀音使用 BackSpace 編輯"; "Allow backspace-editing miscomposed readings" = "允許對無效的讀音使用 BackSpace 編輯";
"Allow boosting / excluding a candidate of single kanji" = "將可以就地升權/排除的候選字詞的最短詞長設為單個漢字"; "Allow boosting / excluding a candidate of single kanji" = "將可以就地升權/排除的候選字詞的最短詞長設為單個漢字";
"Allow using Enter key to confirm associated candidate selection" = "允許使用 Enter 確認當前選中的聯想詞"; "Allow using Enter key to confirm associated candidate selection" = "允許使用 Enter 確認當前選中的聯想詞";
"Also toggle alphanumerical mode with Left-Shift" = "也允許使用左側的 Shift 鍵盤切換英數輸入模式";
"Always use fixed listing order in candidate window" = "以固定順序來陳列選字窗內的候選字"; "Always use fixed listing order in candidate window" = "以固定順序來陳列選字窗內的候選字";
"An accomodation for elder computer users." = "針對年長使用者的習慣而提供。"; "An accomodation for elder computer users." = "針對年長使用者的習慣而提供。";
"Apple ABC (equivalent to English US)" = "Apple ABC (與 Apple 美規鍵盤等價)"; "Apple ABC (equivalent to English US)" = "Apple ABC (與 Apple 美規鍵盤等價)";
@ -103,7 +105,6 @@
"Automatically correct reading combinations when typing" = "敲字時自動糾正讀音組合"; "Automatically correct reading combinations when typing" = "敲字時自動糾正讀音組合";
"Automatically reload user data files if changes detected" = "自動檢測並載入使用者語彙檔案變更"; "Automatically reload user data files if changes detected" = "自動檢測並載入使用者語彙檔案變更";
"Basic Keyboard Layout:" = "基礎鍵盤佈局:"; "Basic Keyboard Layout:" = "基礎鍵盤佈局:";
"Buffer Limit:" = "組字區容量:";
"Candidate Layout:" = "候選字窗佈局:"; "Candidate Layout:" = "候選字窗佈局:";
"Candidate Size:" = "候選字窗字號:"; "Candidate Size:" = "候選字窗字號:";
"Change user interface language (will reboot the IME)." = "變更輸入法介面語言,會自動重啟輸入法。"; "Change user interface language (will reboot the IME)." = "變更輸入法介面語言,會自動重啟輸入法。";
@ -157,10 +158,8 @@
"Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音並擊(組字區與工具提示內顯示漢語拼音)"; "Show Hanyu-Pinyin in the inline composition buffer & tooltip" = "拼音並擊(組字區與工具提示內顯示漢語拼音)";
"Show page buttons in candidate window" = "在選字窗內顯示翻頁按鈕"; "Show page buttons in candidate window" = "在選字窗內顯示翻頁按鈕";
"Simplified Chinese" = "簡體中文"; "Simplified Chinese" = "簡體中文";
"Space & ESC Key:" = "ESC 與空格鍵:";
"Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格鍵 換下一頁,空格鍵 換選下一個後選字"; "Space to +cycle candidates, Shift+Space to +cycle pages" = "Shift+空格鍵 換下一頁,空格鍵 換選下一個後選字";
"Space to +cycle pages, Shift+Space to +cycle candidates" = "空格鍵 換下一頁Shift+空格鍵 換選下一個後選字"; "Space to +cycle pages, Shift+Space to +cycle candidates" = "空格鍵 換下一頁Shift+空格鍵 換選下一個後選字";
"Specify the maximum characters allowed in the composition buffer." = "請指定組字緩衝區內的文字數的上限。";
"Starlight" = "星光排列"; "Starlight" = "星光排列";
"Stop farting (when typed phonetic combination is invalid, etc.)" = "廉恥模式 // 取消勾選的話,敲錯字時會有異音"; "Stop farting (when typed phonetic combination is invalid, etc.)" = "廉恥模式 // 取消勾選的話,敲錯字時會有異音";
"Traditional Chinese" = "繁體中文"; "Traditional Chinese" = "繁體中文";

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation
import InputMethodKit import InputMethodKit

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards Weizhong Yang (MIT License). // Copyright (c) 2021 and onwards Weizhong Yang (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import SwiftUI import SwiftUI

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import SwiftUI import SwiftUI
@ -45,14 +29,14 @@ struct suiPrefPaneExperience: View {
@State private var selKeyBehaviorESCForClearingTheBuffer = UserDefaults.standard.bool( @State private var selKeyBehaviorESCForClearingTheBuffer = UserDefaults.standard.bool(
forKey: UserDef.kEscToCleanInputBuffer.rawValue) forKey: UserDef.kEscToCleanInputBuffer.rawValue)
@State private var selEnableSCPCTypingMode = UserDefaults.standard.bool(forKey: UserDef.kUseSCPCTypingMode.rawValue) @State private var selEnableSCPCTypingMode = UserDefaults.standard.bool(forKey: UserDef.kUseSCPCTypingMode.rawValue)
@State private var selComposingBufferSize = UserDefaults.standard.integer(
forKey: UserDef.kComposingBufferSize.rawValue)
@State private var selAutoCorrectReadingCombination = UserDefaults.standard.bool( @State private var selAutoCorrectReadingCombination = UserDefaults.standard.bool(
forKey: UserDef.kAutoCorrectReadingCombination.rawValue) forKey: UserDef.kAutoCorrectReadingCombination.rawValue)
@State private var selAlsoConfirmAssociatedCandidatesByEnter = UserDefaults.standard.bool( @State private var selAlsoConfirmAssociatedCandidatesByEnter = UserDefaults.standard.bool(
forKey: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue) forKey: UserDef.kAlsoConfirmAssociatedCandidatesByEnter.rawValue)
@State private var selKeepReadingUponCompositionError = UserDefaults.standard.bool( @State private var selKeepReadingUponCompositionError = UserDefaults.standard.bool(
forKey: UserDef.kKeepReadingUponCompositionError.rawValue) forKey: UserDef.kKeepReadingUponCompositionError.rawValue)
@State private var selTogglingAlphanumericalModeWithLShift = UserDefaults.standard.bool(
forKey: UserDef.kTogglingAlphanumericalModeWithLShift.rawValue)
private let contentWidth: Double = { private let contentWidth: Double = {
switch mgrPrefs.appleLanguages[0] { switch mgrPrefs.appleLanguages[0] {
case "ja": case "ja":
@ -68,7 +52,7 @@ struct suiPrefPaneExperience: View {
var body: some View { var body: some View {
Preferences.Container(contentWidth: contentWidth) { Preferences.Container(contentWidth: contentWidth) {
Preferences.Section(bottomDivider: true, label: { Text(LocalizedStringKey("Selection Keys:")) }) { Preferences.Section(label: { Text(LocalizedStringKey("Selection Keys:")) }) {
ComboBox(items: mgrPrefs.suggestedCandidateKeys, text: $selSelectionKeys).frame(width: 180).onChange( ComboBox(items: mgrPrefs.suggestedCandidateKeys, text: $selSelectionKeys).frame(width: 180).onChange(
of: selSelectionKeys of: selSelectionKeys
) { value in ) { value in
@ -96,25 +80,7 @@ struct suiPrefPaneExperience: View {
) )
.preferenceDescription() .preferenceDescription()
} }
Preferences.Section(bottomDivider: true, label: { Text(LocalizedStringKey("Buffer Limit:")) }) { Preferences.Section(label: { Text(LocalizedStringKey("Cursor Selection:")) }) {
Picker("", selection: $selComposingBufferSize) {
Text("10").tag(10)
Text("15").tag(15)
Text("20").tag(20)
Text("25").tag(25)
Text("30").tag(30)
Text("35").tag(35)
Text("40").tag(40)
}.onChange(of: selComposingBufferSize) { value in
mgrPrefs.composingBufferSize = value
}
.labelsHidden()
.horizontalRadioGroupLayout()
.pickerStyle(RadioGroupPickerStyle())
Text(LocalizedStringKey("Specify the maximum characters allowed in the composition buffer."))
.preferenceDescription()
}
Preferences.Section(bottomDivider: true, label: { Text(LocalizedStringKey("Cursor Selection:")) }) {
Picker("", selection: $selCursorPosition) { Picker("", selection: $selCursorPosition) {
Text(LocalizedStringKey("in front of the phrase (like macOS built-in Zhuyin IME)")).tag(0) Text(LocalizedStringKey("in front of the phrase (like macOS built-in Zhuyin IME)")).tag(0)
Text(LocalizedStringKey("at the rear of the phrase (like Microsoft New Phonetic)")).tag(1) Text(LocalizedStringKey("at the rear of the phrase (like Microsoft New Phonetic)")).tag(1)
@ -132,7 +98,7 @@ struct suiPrefPaneExperience: View {
mgrPrefs.moveCursorAfterSelectingCandidate = value mgrPrefs.moveCursorAfterSelectingCandidate = value
}.controlSize(.small) }.controlSize(.small)
} }
Preferences.Section(title: "(Shift+)Tab:", bottomDivider: true) { Preferences.Section(title: "(Shift+)Tab:") {
Picker("", selection: $selKeyBehaviorShiftTab) { Picker("", selection: $selKeyBehaviorShiftTab) {
Text(LocalizedStringKey("for cycling candidates")).tag(0) Text(LocalizedStringKey("for cycling candidates")).tag(0)
Text(LocalizedStringKey("for cycling pages")).tag(1) Text(LocalizedStringKey("for cycling pages")).tag(1)
@ -145,7 +111,7 @@ struct suiPrefPaneExperience: View {
Text(LocalizedStringKey("Choose the behavior of (Shift+)Tab key in the candidate window.")) Text(LocalizedStringKey("Choose the behavior of (Shift+)Tab key in the candidate window."))
.preferenceDescription() .preferenceDescription()
} }
Preferences.Section(bottomDivider: true, label: { Text(LocalizedStringKey("(Shift+)Space:")) }) { Preferences.Section(label: { Text(LocalizedStringKey("(Shift+)Space:")) }) {
Picker("", selection: $selKeyBehaviorShiftSpace) { Picker("", selection: $selKeyBehaviorShiftSpace) {
Text(LocalizedStringKey("Space to +cycle candidates, Shift+Space to +cycle pages")).tag(0) Text(LocalizedStringKey("Space to +cycle candidates, Shift+Space to +cycle pages")).tag(0)
Text(LocalizedStringKey("Space to +cycle pages, Shift+Space to +cycle candidates")).tag(1) Text(LocalizedStringKey("Space to +cycle pages, Shift+Space to +cycle candidates")).tag(1)
@ -157,7 +123,7 @@ struct suiPrefPaneExperience: View {
Text(LocalizedStringKey("Choose the behavior of (Shift+)Space key with candidates.")) Text(LocalizedStringKey("Choose the behavior of (Shift+)Space key with candidates."))
.preferenceDescription() .preferenceDescription()
} }
Preferences.Section(bottomDivider: true, label: { Text(LocalizedStringKey("Space & ESC Key:")) }) { Preferences.Section(label: { Text(LocalizedStringKey("Misc Settings:")) }) {
Toggle( Toggle(
LocalizedStringKey("Enable Space key for calling candidate window"), LocalizedStringKey("Enable Space key for calling candidate window"),
isOn: $selKeyBehaviorSpaceForCallingCandidate isOn: $selKeyBehaviorSpaceForCallingCandidate
@ -170,14 +136,24 @@ struct suiPrefPaneExperience: View {
).onChange(of: selKeyBehaviorESCForClearingTheBuffer) { value in ).onChange(of: selKeyBehaviorESCForClearingTheBuffer) { value in
mgrPrefs.escToCleanInputBuffer = value mgrPrefs.escToCleanInputBuffer = value
} }
}
Preferences.Section(label: { Text(LocalizedStringKey("Typing Style:")) }) {
Toggle( Toggle(
LocalizedStringKey("Automatically correct reading combinations when typing"), LocalizedStringKey("Automatically correct reading combinations when typing"),
isOn: $selAutoCorrectReadingCombination isOn: $selAutoCorrectReadingCombination
).onChange(of: selAutoCorrectReadingCombination) { value in ).onChange(of: selAutoCorrectReadingCombination) { value in
mgrPrefs.autoCorrectReadingCombination = value mgrPrefs.autoCorrectReadingCombination = value
} }
Toggle(
LocalizedStringKey("Allow using Enter key to confirm associated candidate selection"),
isOn: $selAlsoConfirmAssociatedCandidatesByEnter
).onChange(of: selAlsoConfirmAssociatedCandidatesByEnter) { value in
mgrPrefs.alsoConfirmAssociatedCandidatesByEnter = value
}
Toggle(
LocalizedStringKey("Also toggle alphanumerical mode with Left-Shift"),
isOn: $selTogglingAlphanumericalModeWithLShift
).onChange(of: selTogglingAlphanumericalModeWithLShift) { value in
mgrPrefs.togglingAlphanumericalModeWithLShift = value
}
Toggle( Toggle(
LocalizedStringKey("Emulating select-candidate-per-character mode"), isOn: $selEnableSCPCTypingMode LocalizedStringKey("Emulating select-candidate-per-character mode"), isOn: $selEnableSCPCTypingMode
).onChange(of: selEnableSCPCTypingMode) { value in ).onChange(of: selEnableSCPCTypingMode) { value in
@ -185,18 +161,6 @@ struct suiPrefPaneExperience: View {
} }
Text(LocalizedStringKey("An accomodation for elder computer users.")) Text(LocalizedStringKey("An accomodation for elder computer users."))
.preferenceDescription() .preferenceDescription()
Toggle(
LocalizedStringKey("Allow using Enter key to confirm associated candidate selection"),
isOn: $selAlsoConfirmAssociatedCandidatesByEnter
).onChange(of: selAlsoConfirmAssociatedCandidatesByEnter) { value in
mgrPrefs.alsoConfirmAssociatedCandidatesByEnter = value
}
Toggle(
LocalizedStringKey("Allow backspace-editing miscomposed readings"),
isOn: $selKeepReadingUponCompositionError
).onChange(of: selKeepReadingUponCompositionError) { value in
mgrPrefs.keepReadingUponCompositionError = value
}
} }
} }
} }

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import SwiftUI import SwiftUI

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import SwiftUI import SwiftUI

View File

@ -1,28 +1,12 @@
// Copyright (c) 2021 and onwards Weizhong Yang (MIT License). // Copyright (c) 2021 and onwards Weizhong Yang (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Carbon import Carbon
import Cocoa import Cocoa

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="20037" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21219" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="20037"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21219"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<objects> <objects>
@ -28,7 +28,7 @@
<window title="vChewing Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="1" userLabel="frmPrefWindow"> <window title="vChewing Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="1" userLabel="frmPrefWindow">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" fullSizeContentView="YES"/> <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" fullSizeContentView="YES"/>
<rect key="contentRect" x="401" y="295" width="445" height="501"/> <rect key="contentRect" x="401" y="295" width="445" height="501"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/> <rect key="screenRect" x="0.0" y="0.0" width="1440" height="875"/>
<view key="contentView" id="2" customClass="NSVisualEffectView"> <view key="contentView" id="2" customClass="NSVisualEffectView">
<rect key="frame" x="0.0" y="0.0" width="445" height="501"/> <rect key="frame" x="0.0" y="0.0" width="445" height="501"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -366,7 +366,7 @@
</textFieldCell> </textFieldCell>
</textField> </textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="13"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="13">
<rect key="frame" x="18" y="353" width="403" height="15"/> <rect key="frame" x="18" y="373" width="403" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the cursor position where you want to list possible candidates." id="14"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the cursor position where you want to list possible candidates." id="14">
<font key="font" metaFont="cellTitle"/> <font key="font" metaFont="cellTitle"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -374,7 +374,7 @@
</textFieldCell> </textFieldCell>
</textField> </textField>
<matrix wantsLayer="YES" verticalHuggingPriority="751" tag="1" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="15"> <matrix wantsLayer="YES" verticalHuggingPriority="751" tag="1" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="15">
<rect key="frame" x="33" y="307" width="402" height="38"/> <rect key="frame" x="33" y="327" width="402" height="38"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="402" height="18"/> <size key="cellSize" width="402" height="18"/>
<size key="intercellSpacing" width="4" height="2"/> <size key="intercellSpacing" width="4" height="2"/>
@ -399,7 +399,7 @@
</connections> </connections>
</matrix> </matrix>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7z2-DD-c58"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7z2-DD-c58">
<rect key="frame" x="33" y="286.5" width="318" height="16"/> <rect key="frame" x="33" y="306.5" width="318" height="16"/>
<buttonCell key="cell" type="check" title="Push the cursor in front of the phrase after selection" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="RUG-ls-KyA"> <buttonCell key="cell" type="check" title="Push the cursor in front of the phrase after selection" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="RUG-ls-KyA">
<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"/>
@ -409,7 +409,7 @@
</connections> </connections>
</button> </button>
<matrix wantsLayer="YES" verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n7q-ew-DYu"> <matrix wantsLayer="YES" verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n7q-ew-DYu">
<rect key="frame" x="33" y="238" width="352" height="18"/> <rect key="frame" x="33" y="258" width="352" height="18"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="174" height="18"/> <size key="cellSize" width="174" height="18"/>
<size key="intercellSpacing" width="4" height="2"/> <size key="intercellSpacing" width="4" height="2"/>
@ -436,7 +436,7 @@
</connections> </connections>
</matrix> </matrix>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TMn-LX-3Ub"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TMn-LX-3Ub">
<rect key="frame" x="18" y="263" width="369" height="15"/> <rect key="frame" x="18" y="283" width="369" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Tab key in the candidate window." id="ueU-Rz-a1C"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Tab key in the candidate window." id="ueU-Rz-a1C">
<font key="font" metaFont="cellTitle"/> <font key="font" metaFont="cellTitle"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -444,7 +444,7 @@
</textFieldCell> </textFieldCell>
</textField> </textField>
<matrix wantsLayer="YES" verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YkJ-lr-EP6"> <matrix wantsLayer="YES" verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YkJ-lr-EP6">
<rect key="frame" x="33" y="170" width="386" height="38"/> <rect key="frame" x="33" y="190" width="386" height="38"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="386" height="18"/> <size key="cellSize" width="386" height="18"/>
<size key="intercellSpacing" width="4" height="2"/> <size key="intercellSpacing" width="4" height="2"/>
@ -469,7 +469,7 @@
</connections> </connections>
</matrix> </matrix>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="J0f-Aw-dxC"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="J0f-Aw-dxC">
<rect key="frame" x="18" y="215" width="336" height="15"/> <rect key="frame" x="18" y="235" width="336" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Space key with candidates." id="Pg5-G9-pY5"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Choose the behavior of (Shift+)Space key with candidates." id="Pg5-G9-pY5">
<font key="font" metaFont="cellTitle"/> <font key="font" metaFont="cellTitle"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -477,7 +477,7 @@
</textFieldCell> </textFieldCell>
</textField> </textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bE0-Lq-Pj7"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bE0-Lq-Pj7">
<rect key="frame" x="19" y="124.5" width="266" height="16"/> <rect key="frame" x="19" y="144.5" width="266" height="16"/>
<buttonCell key="cell" type="check" title="Use ESC key to clear the entire input buffer" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="f2j-xD-4xK"> <buttonCell key="cell" type="check" title="Use ESC key to clear the entire input buffer" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="f2j-xD-4xK">
<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"/>
@ -487,7 +487,7 @@
</connections> </connections>
</button> </button>
<button translatesAutoresizingMaskIntoConstraints="NO" id="109"> <button translatesAutoresizingMaskIntoConstraints="NO" id="109">
<rect key="frame" x="19" y="145.5" width="285" height="16"/> <rect key="frame" x="19" y="165.5" width="285" height="16"/>
<buttonCell key="cell" type="check" title="Enable Space key for calling candidate window" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" state="on" inset="2" id="110"> <buttonCell key="cell" type="check" title="Enable Space key for calling candidate window" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" state="on" inset="2" id="110">
<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"/>
@ -497,7 +497,7 @@
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mzw-F2-aAQ"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mzw-F2-aAQ">
<rect key="frame" x="19" y="103.5" width="295" height="16"/> <rect key="frame" x="19" y="123.5" width="295" height="16"/>
<buttonCell key="cell" type="check" title="Emulating select-candidate-per-character mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="ArK-Vk-OoT"> <buttonCell key="cell" type="check" title="Emulating select-candidate-per-character mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="ArK-Vk-OoT">
<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"/>
@ -506,65 +506,8 @@
<binding destination="32" name="value" keyPath="values.UseSCPCTypingMode" id="PbD-wq-OsN"/> <binding destination="32" name="value" keyPath="values.UseSCPCTypingMode" id="PbD-wq-OsN"/>
</connections> </connections>
</button> </button>
<matrix wantsLayer="YES" verticalHuggingPriority="750" allowsEmptySelection="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JG6-RM-ZdJ">
<rect key="frame" x="111" y="376" width="297" height="15"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<size key="cellSize" width="39" height="15"/>
<size key="intercellSpacing" width="4" height="2"/>
<buttonCell key="prototype" type="radio" title="Radio" imagePosition="left" alignment="left" controlSize="small" inset="2" id="YLE-4b-HX3">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
<cells>
<column>
<buttonCell type="radio" title="10" imagePosition="left" alignment="left" controlSize="small" state="on" tag="10" inset="2" id="QIi-jM-Mcm">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="15" imagePosition="left" alignment="left" controlSize="small" tag="15" inset="2" id="3ZE-2c-qjN">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="20" imagePosition="left" alignment="left" controlSize="small" tag="20" inset="2" id="FJI-A2-q4K">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="25" imagePosition="left" alignment="left" controlSize="small" tag="25" inset="2" id="cBE-ve-Cs5">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="30" imagePosition="left" alignment="left" controlSize="small" tag="30" inset="2" id="1YY-sv-ibi">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="35" imagePosition="left" alignment="left" controlSize="small" tag="35" inset="2" id="mx7-hu-Yzy">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
<column>
<buttonCell type="radio" title="40" imagePosition="left" alignment="left" controlSize="small" tag="40" inset="2" id="qMD-KO-AMu">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
</column>
</cells>
<connections>
<binding destination="32" name="selectedTag" keyPath="values.ComposingBufferSize" id="DLu-Gr-ghB"/>
</connections>
</matrix>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="j8R-Hj-3dj"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="j8R-Hj-3dj">
<rect key="frame" x="19" y="82.5" width="340" height="16"/> <rect key="frame" x="19" y="102.5" width="340" height="16"/>
<buttonCell key="cell" type="check" title="Automatically correct reading combinations when typing" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkAutoCorrectReadingCombination"> <buttonCell key="cell" type="check" title="Automatically correct reading combinations when typing" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkAutoCorrectReadingCombination">
<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"/>
@ -573,16 +516,8 @@
<binding destination="32" name="value" keyPath="values.AutoCorrectReadingCombination" id="bix-eJ-jtV"/> <binding destination="32" name="value" keyPath="values.AutoCorrectReadingCombination" id="bix-eJ-jtV"/>
</connections> </connections>
</button> </button>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="d5f-bq-dRQ">
<rect key="frame" x="18" y="376" width="74" height="15"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Buffer Limit:" id="xibLabelBufferLimit">
<font key="font" metaFont="cellTitle"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6MM-WC-Mpd"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6MM-WC-Mpd">
<rect key="frame" x="19" y="61.5" width="388" height="16"/> <rect key="frame" x="19" y="81.5" width="388" height="16"/>
<buttonCell key="cell" type="check" title="Allow using Enter key to confirm associated candidate selection" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkAlsoConfirmAssociatedCandidatesByEnter"> <buttonCell key="cell" type="check" title="Allow using Enter key to confirm associated candidate selection" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkAlsoConfirmAssociatedCandidatesByEnter">
<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"/>
@ -592,7 +527,7 @@
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HaB-rc-AcW"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HaB-rc-AcW">
<rect key="frame" x="19" y="40.5" width="388" height="16"/> <rect key="frame" x="19" y="60.5" width="388" height="16"/>
<buttonCell key="cell" type="check" title="Allow backspace-editing miscomposed readings" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkKeepReadingUponCompositionError"> <buttonCell key="cell" type="check" title="Allow backspace-editing miscomposed readings" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkKeepReadingUponCompositionError">
<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"/>
@ -601,19 +536,30 @@
<binding destination="32" name="value" keyPath="values.KeepReadingUponCompositionError" id="ddF-qg-jes"/> <binding destination="32" name="value" keyPath="values.KeepReadingUponCompositionError" id="ddF-qg-jes"/>
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FCB-ax-ARZ">
<rect key="frame" x="19" y="39.5" width="388" height="16"/>
<buttonCell key="cell" type="check" title="Also toggle alphanumerical mode with Left-Shift" bezelStyle="regularSquare" imagePosition="left" controlSize="small" inset="2" id="chkTogglingAlphanumericalModeWithLShift">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="cellTitle"/>
</buttonCell>
<connections>
<binding destination="32" name="value" keyPath="values.TogglingAlphanumericalModeWithLShift" id="XW6-un-l8B"/>
</connections>
</button>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="n7q-ew-DYu" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="2gT-9Z-6F4"/> <constraint firstItem="n7q-ew-DYu" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="2gT-9Z-6F4"/>
<constraint firstItem="109" firstAttribute="top" secondItem="YkJ-lr-EP6" secondAttribute="bottom" constant="9" id="3tl-Zc-C5n"/> <constraint firstItem="109" firstAttribute="top" secondItem="YkJ-lr-EP6" secondAttribute="bottom" constant="9" id="3tl-Zc-C5n"/>
<constraint firstItem="13" firstAttribute="top" secondItem="d5f-bq-dRQ" secondAttribute="bottom" constant="8" symbolic="YES" id="4pp-NX-pCc"/>
<constraint firstItem="YkJ-lr-EP6" firstAttribute="top" secondItem="J0f-Aw-dxC" secondAttribute="bottom" constant="7" id="5fd-qi-hJ6"/> <constraint firstItem="YkJ-lr-EP6" firstAttribute="top" secondItem="J0f-Aw-dxC" secondAttribute="bottom" constant="7" id="5fd-qi-hJ6"/>
<constraint firstItem="13" firstAttribute="top" secondItem="uHU-aL-du7" secondAttribute="bottom" constant="11" id="5uq-In-4bN"/>
<constraint firstItem="HaB-rc-AcW" firstAttribute="leading" secondItem="6MM-WC-Mpd" secondAttribute="leading" id="7Fs-9l-g66"/> <constraint firstItem="HaB-rc-AcW" firstAttribute="leading" secondItem="6MM-WC-Mpd" secondAttribute="leading" id="7Fs-9l-g66"/>
<constraint firstItem="d5f-bq-dRQ" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="9wo-7x-RKb"/>
<constraint firstItem="TMn-LX-3Ub" firstAttribute="top" secondItem="7z2-DD-c58" secondAttribute="bottom" constant="9" id="AXY-LV-HMX"/> <constraint firstItem="TMn-LX-3Ub" firstAttribute="top" secondItem="7z2-DD-c58" secondAttribute="bottom" constant="9" id="AXY-LV-HMX"/>
<constraint firstItem="7z2-DD-c58" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="34" id="BUo-Us-u2B"/> <constraint firstItem="7z2-DD-c58" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="34" id="BUo-Us-u2B"/>
<constraint firstItem="15" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="Be1-9m-alA"/> <constraint firstItem="15" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="Be1-9m-alA"/>
<constraint firstItem="n7q-ew-DYu" firstAttribute="top" secondItem="TMn-LX-3Ub" secondAttribute="bottom" constant="7" id="BtQ-PX-1e1"/> <constraint firstItem="n7q-ew-DYu" firstAttribute="top" secondItem="TMn-LX-3Ub" secondAttribute="bottom" constant="7" id="BtQ-PX-1e1"/>
<constraint firstItem="109" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="Cu9-uO-BZG"/> <constraint firstItem="109" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="Cu9-uO-BZG"/>
<constraint firstItem="FCB-ax-ARZ" firstAttribute="top" secondItem="HaB-rc-AcW" secondAttribute="bottom" constant="6" id="EAW-lg-2pb"/>
<constraint firstItem="FCB-ax-ARZ" firstAttribute="leading" secondItem="HaB-rc-AcW" secondAttribute="leading" id="GjC-qu-Nxe"/>
<constraint firstItem="j8R-Hj-3dj" firstAttribute="top" secondItem="mzw-F2-aAQ" secondAttribute="bottom" constant="6" id="H9h-Dz-FOL"/> <constraint firstItem="j8R-Hj-3dj" firstAttribute="top" secondItem="mzw-F2-aAQ" secondAttribute="bottom" constant="6" id="H9h-Dz-FOL"/>
<constraint firstItem="bE0-Lq-Pj7" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="KKo-uq-jJx"/> <constraint firstItem="bE0-Lq-Pj7" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="KKo-uq-jJx"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="7z2-DD-c58" secondAttribute="trailing" constant="20" symbolic="YES" id="O2M-YY-tO1"/> <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="7z2-DD-c58" secondAttribute="trailing" constant="20" symbolic="YES" id="O2M-YY-tO1"/>
@ -625,7 +571,6 @@
<constraint firstAttribute="trailing" relation="lessThanOrEqual" secondItem="6MM-WC-Mpd" secondAttribute="trailing" constant="38" id="VEQ-DQ-Fgq"/> <constraint firstAttribute="trailing" relation="lessThanOrEqual" secondItem="6MM-WC-Mpd" secondAttribute="trailing" constant="38" id="VEQ-DQ-Fgq"/>
<constraint firstItem="7z2-DD-c58" firstAttribute="top" secondItem="15" secondAttribute="bottom" constant="5" id="VKv-YI-AS2"/> <constraint firstItem="7z2-DD-c58" firstAttribute="top" secondItem="15" secondAttribute="bottom" constant="5" id="VKv-YI-AS2"/>
<constraint firstItem="15" firstAttribute="top" secondItem="13" secondAttribute="bottom" constant="8" symbolic="YES" id="WHr-jO-a07"/> <constraint firstItem="15" firstAttribute="top" secondItem="13" secondAttribute="bottom" constant="8" symbolic="YES" id="WHr-jO-a07"/>
<constraint firstItem="JG6-RM-ZdJ" firstAttribute="leading" secondItem="d5f-bq-dRQ" secondAttribute="trailing" constant="21" id="Y2r-b0-0l6"/>
<constraint firstItem="IpX-f7-rTL" firstAttribute="top" secondItem="XWo-36-xGi" secondAttribute="top" constant="20" id="YaG-ab-LJH"/> <constraint firstItem="IpX-f7-rTL" firstAttribute="top" secondItem="XWo-36-xGi" secondAttribute="top" constant="20" id="YaG-ab-LJH"/>
<constraint firstItem="uHU-aL-du7" firstAttribute="top" secondItem="IpX-f7-rTL" secondAttribute="bottom" constant="8" symbolic="YES" id="aet-Zq-v6x"/> <constraint firstItem="uHU-aL-du7" firstAttribute="top" secondItem="IpX-f7-rTL" secondAttribute="bottom" constant="8" symbolic="YES" id="aet-Zq-v6x"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="TMn-LX-3Ub" secondAttribute="trailing" constant="20" symbolic="YES" id="atz-4L-U9s"/> <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="TMn-LX-3Ub" secondAttribute="trailing" constant="20" symbolic="YES" id="atz-4L-U9s"/>
@ -643,13 +588,12 @@
<constraint firstItem="mzw-F2-aAQ" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="pHT-DE-qdx"/> <constraint firstItem="mzw-F2-aAQ" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="pHT-DE-qdx"/>
<constraint firstItem="ETa-09-qWI" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="qFL-i6-eUT"/> <constraint firstItem="ETa-09-qWI" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="33" id="qFL-i6-eUT"/>
<constraint firstItem="HaB-rc-AcW" firstAttribute="trailing" secondItem="6MM-WC-Mpd" secondAttribute="trailing" id="rA7-0f-akd"/> <constraint firstItem="HaB-rc-AcW" firstAttribute="trailing" secondItem="6MM-WC-Mpd" secondAttribute="trailing" id="rA7-0f-akd"/>
<constraint firstItem="JG6-RM-ZdJ" firstAttribute="top" secondItem="uHU-aL-du7" secondAttribute="bottom" constant="8" id="shS-7h-z7u"/>
<constraint firstItem="TMn-LX-3Ub" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="tFX-Eg-X70"/> <constraint firstItem="TMn-LX-3Ub" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="tFX-Eg-X70"/>
<constraint firstItem="J0f-Aw-dxC" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="v75-cS-TsO"/> <constraint firstItem="J0f-Aw-dxC" firstAttribute="leading" secondItem="XWo-36-xGi" secondAttribute="leading" constant="20" id="v75-cS-TsO"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="mzw-F2-aAQ" secondAttribute="trailing" constant="20" symbolic="YES" id="vCa-4g-Zxq"/> <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="mzw-F2-aAQ" secondAttribute="trailing" constant="20" symbolic="YES" id="vCa-4g-Zxq"/>
<constraint firstItem="uHU-aL-du7" firstAttribute="leading" secondItem="ETa-09-qWI" secondAttribute="trailing" constant="8" symbolic="YES" id="wZO-1b-2vC"/> <constraint firstItem="uHU-aL-du7" firstAttribute="leading" secondItem="ETa-09-qWI" secondAttribute="trailing" constant="8" symbolic="YES" id="wZO-1b-2vC"/>
<constraint firstItem="d5f-bq-dRQ" firstAttribute="top" secondItem="ETa-09-qWI" secondAttribute="bottom" constant="8" symbolic="YES" id="xCy-RL-joo"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="13" secondAttribute="trailing" constant="20" symbolic="YES" id="yxg-7J-xR5"/> <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="13" secondAttribute="trailing" constant="20" symbolic="YES" id="yxg-7J-xR5"/>
<constraint firstItem="FCB-ax-ARZ" firstAttribute="trailing" secondItem="HaB-rc-AcW" secondAttribute="trailing" id="z0l-7W-j7D"/>
</constraints> </constraints>
<point key="canvasLocation" x="-376" y="-618"/> <point key="canvasLocation" x="-376" y="-618"/>
</visualEffectView> </visualEffectView>

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "Automatically correct reading combinations when typing"; "chkAutoCorrectReadingCombination.title" = "Automatically correct reading combinations when typing";
"chkFetchSuggestionsFromUserOverrideModel.title" = "Applying typing suggestions from half-life user override model"; "chkFetchSuggestionsFromUserOverrideModel.title" = "Applying typing suggestions from half-life user override model";
"chkKeepReadingUponCompositionError.title" = "Allow backspace-editing miscomposed readings"; "chkKeepReadingUponCompositionError.title" = "Allow backspace-editing miscomposed readings";
"chkTogglingAlphanumericalModeWithLShift.title" = "Also toggle alphanumerical mode with Left-Shift";
"chkUseFixecCandidateOrderOnSelection.title" = "Always use fixed listing order in candidate window"; "chkUseFixecCandidateOrderOnSelection.title" = "Always use fixed listing order in candidate window";
"DbW-eq-ZdB.title" = "Starlight"; "DbW-eq-ZdB.title" = "Starlight";
"dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages"; "dIN-TZ-67g.title" = "Space to +cycle candidates, Shift+Space to +cycle pages";
@ -84,7 +85,6 @@
"xC5-yV-1W1.title" = "Choose your preferred layout of the candidate window."; "xC5-yV-1W1.title" = "Choose your preferred layout of the candidate window.";
"xibGeneralSettings.title" = "General Settings"; "xibGeneralSettings.title" = "General Settings";
"xibKeyboardShortcuts.title" = "Keyboard Shortcuts"; "xibKeyboardShortcuts.title" = "Keyboard Shortcuts";
"xibLabelBufferLimit.title" = "Buffer Limit:";
"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";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "入力中で打ち間違った発音組み合わせを自動的に訂正する"; "chkAutoCorrectReadingCombination.title" = "入力中で打ち間違った発音組み合わせを自動的に訂正する";
"chkFetchSuggestionsFromUserOverrideModel.title" = "入力中で臨時記憶モジュールからお薦めの候補を自動的に選ぶ"; "chkFetchSuggestionsFromUserOverrideModel.title" = "入力中で臨時記憶モジュールからお薦めの候補を自動的に選ぶ";
"chkKeepReadingUponCompositionError.title" = "効かぬ音読みを BackSpace で再編集"; "chkKeepReadingUponCompositionError.title" = "効かぬ音読みを BackSpace で再編集";
"chkTogglingAlphanumericalModeWithLShift.title" = "左側の Shift キーでも英数入力モードの切り替え";
"chkUseFixecCandidateOrderOnSelection.title" = "候補文字を固定順番で陳列する"; "chkUseFixecCandidateOrderOnSelection.title" = "候補文字を固定順番で陳列する";
"DbW-eq-ZdB.title" = "星光"; "DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を"; "dIN-TZ-67g.title" = "Shift+Space で次のページ、Space で次の候補文字を";
@ -84,7 +85,6 @@
"xC5-yV-1W1.title" = "入力候補陳列の仕様をご指定ください。"; "xC5-yV-1W1.title" = "入力候補陳列の仕様をご指定ください。";
"xibGeneralSettings.title" = "全般設定"; "xibGeneralSettings.title" = "全般設定";
"xibKeyboardShortcuts.title" = "ショートカット"; "xibKeyboardShortcuts.title" = "ショートカット";
"xibLabelBufferLimit.title" = "緩衝列の容量:";
"xibOutputSettings.title" = "出力設定"; "xibOutputSettings.title" = "出力設定";
"xibUsingCurrencyNumerals.title" = "数字大字変換"; "xibUsingCurrencyNumerals.title" = "数字大字変換";
"xibUsingHotKeyAssociates.title" = "全候補入力で連想語彙"; "xibUsingHotKeyAssociates.title" = "全候補入力で連想語彙";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "敲字时自动纠正读音组合"; "chkAutoCorrectReadingCombination.title" = "敲字时自动纠正读音组合";
"chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字时自动套用来自半衰记忆模组的建议"; "chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字时自动套用来自半衰记忆模组的建议";
"chkKeepReadingUponCompositionError.title" = "允许对无效的读音使用 BackSpace 编辑"; "chkKeepReadingUponCompositionError.title" = "允许对无效的读音使用 BackSpace 编辑";
"chkTogglingAlphanumericalModeWithLShift.title" = "也允许使用左侧的 Shift 键盘切换英数输入模式";
"chkUseFixecCandidateOrderOnSelection.title" = "以固定顺序来陈列选字窗内的候选字"; "chkUseFixecCandidateOrderOnSelection.title" = "以固定顺序来陈列选字窗内的候选字";
"DbW-eq-ZdB.title" = "星光"; "DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space 换下一页Space 换选下一个候选字。"; "dIN-TZ-67g.title" = "Shift+Space 换下一页Space 换选下一个候选字。";
@ -84,7 +85,6 @@
"xC5-yV-1W1.title" = "选择您所偏好的候选字窗布局。"; "xC5-yV-1W1.title" = "选择您所偏好的候选字窗布局。";
"xibGeneralSettings.title" = "一般设定"; "xibGeneralSettings.title" = "一般设定";
"xibKeyboardShortcuts.title" = "键盘快捷键"; "xibKeyboardShortcuts.title" = "键盘快捷键";
"xibLabelBufferLimit.title" = "组字区容量:";
"xibOutputSettings.title" = "输出设定"; "xibOutputSettings.title" = "输出设定";
"xibUsingCurrencyNumerals.title" = "大写汉字数字输出"; "xibUsingCurrencyNumerals.title" = "大写汉字数字输出";
"xibUsingHotKeyAssociates.title" = "逐字选字联想模式"; "xibUsingHotKeyAssociates.title" = "逐字选字联想模式";

View File

@ -44,6 +44,7 @@
"chkAutoCorrectReadingCombination.title" = "敲字時自動糾正讀音組合"; "chkAutoCorrectReadingCombination.title" = "敲字時自動糾正讀音組合";
"chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字時自動套用來自半衰記憶模組的建議"; "chkFetchSuggestionsFromUserOverrideModel.title" = "在敲字時自動套用來自半衰記憶模組的建議";
"chkKeepReadingUponCompositionError.title" = "允許對無效的讀音使用 BackSpace 編輯"; "chkKeepReadingUponCompositionError.title" = "允許對無效的讀音使用 BackSpace 編輯";
"chkTogglingAlphanumericalModeWithLShift.title" = "也允許使用左側的 Shift 鍵盤切換英數輸入模式";
"chkUseFixecCandidateOrderOnSelection.title" = "以固定順序來陳列選字窗內的候選字"; "chkUseFixecCandidateOrderOnSelection.title" = "以固定順序來陳列選字窗內的候選字";
"DbW-eq-ZdB.title" = "星光"; "DbW-eq-ZdB.title" = "星光";
"dIN-TZ-67g.title" = "Shift+Space 換下一頁Space 換選下一個候選字"; "dIN-TZ-67g.title" = "Shift+Space 換下一頁Space 換選下一個候選字";
@ -84,7 +85,6 @@
"xC5-yV-1W1.title" = "選擇您所偏好的候選字窗佈局。"; "xC5-yV-1W1.title" = "選擇您所偏好的候選字窗佈局。";
"xibGeneralSettings.title" = "一般設定"; "xibGeneralSettings.title" = "一般設定";
"xibKeyboardShortcuts.title" = "鍵盤快速鍵"; "xibKeyboardShortcuts.title" = "鍵盤快速鍵";
"xibLabelBufferLimit.title" = "組字區容量:";
"xibOutputSettings.title" = "輸出設定"; "xibOutputSettings.title" = "輸出設定";
"xibUsingCurrencyNumerals.title" = "大寫漢字數字輸出"; "xibUsingCurrencyNumerals.title" = "大寫漢字數字輸出";
"xibUsingHotKeyAssociates.title" = "逐字選字聯想模式"; "xibUsingHotKeyAssociates.title" = "逐字選字聯想模式";

View File

@ -3,9 +3,9 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.8.7</string> <string>1.8.8</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1987</string> <string>1988</string>
<key>UpdateInfoEndpoint</key> <key>UpdateInfoEndpoint</key>
<string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string> <string>https://gitee.com/vchewing/vChewing-macOS/raw/main/Update-Info.plist</string>
<key>UpdateInfoSite</key> <key>UpdateInfoSite</key>

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa
import Foundation import Foundation

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Foundation import Foundation

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,26 +1,10 @@
// Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License). // Copyright (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

View File

@ -1,28 +1,12 @@
// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). // Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License).
// All possible vChewing-specific modifications are of: // All possible vChewing-specific modifications are of:
// (c) 2021 and onwards The vChewing Project (MIT-NTL License). // (c) 2021 and onwards The vChewing Project (MIT-NTL License).
/* // ====================
Permission is hereby granted, free of charge, to any person obtaining a copy of // This code is released under the MIT license (SPDX-License-Identifier: MIT)
this software and associated documentation files (the "Software"), to deal in // ... with NTL restriction stating that:
the Software without restriction, including without limitation the rights to // No trademark license is granted to use the trade names, trademarks, service
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // marks, or product names of Contributor, except as required to fulfill notice
the Software, and to permit persons to whom the Software is furnished to do so, // requirements defined in MIT License.
subject to the following conditions:
1. The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2. 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 above.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import Cocoa import Cocoa

Some files were not shown because too many files have changed in this diff Show More