diff --git a/Kit/helpers.swift b/Kit/helpers.swift index bbccf223..93e0e97c 100644 --- a/Kit/helpers.swift +++ b/Kit/helpers.swift @@ -1239,3 +1239,15 @@ public class AppIcon: NSView { NSBezierPath(rect: rect).fill() } } + +public func controlState(_ sender: NSControl) -> Bool { + var state: NSControl.StateValue + + if #available(OSX 10.15, *) { + state = sender is NSSwitch ? (sender as! NSSwitch).state : .off + } else { + state = sender is NSButton ? (sender as! NSButton).state : .off + } + + return state == .on +} diff --git a/Modules/Sensors/main.swift b/Modules/Sensors/main.swift index 531bc201..3c76e0b5 100644 --- a/Modules/Sensors/main.swift +++ b/Modules/Sensors/main.swift @@ -40,6 +40,11 @@ public class Sensors: Module { self.popupView.setup(self.sensorsReader.list) self.settingsView.setList(list: self.sensorsReader.list) } + self.settingsView.unknownCallback = { [unowned self] in + self.sensorsReader.unknownCallback() + self.popupView.setup(self.sensorsReader.list) + self.settingsView.setList(list: self.sensorsReader.list) + } self.sensorsReader.callbackHandler = { [unowned self] value in self.usageCallback(value) diff --git a/Modules/Sensors/readers.swift b/Modules/Sensors/readers.swift index 9c5370e5..ac57ab75 100644 --- a/Modules/Sensors/readers.swift +++ b/Modules/Sensors/readers.swift @@ -15,20 +15,35 @@ import Kit internal class SensorsReader: Reader<[Sensor_p]> { static let HIDtypes: [SensorType] = [.temperature, .voltage] - internal var list: [Sensor_p] = [] + private let listQueue = DispatchQueue(label: "listQueue") + internal var listData: [Sensor_p] = [] + internal var list: [Sensor_p] { + get { + self.listQueue.sync{self.listData} + } + set(newValue) { + self.listQueue.sync { + self.listData = newValue + } + } + } private var lastRead: Date = Date() private let firstRead: Date = Date() private var HIDState: Bool { - get { - return Store.shared.bool(key: "Sensors_hid", defaultValue: false) - } + return Store.shared.bool(key: "Sensors_hid", defaultValue: false) + } + private var unknownSensorsState: Bool { + return Store.shared.bool(key: "Sensors_unknown", defaultValue: false) } init() { super.init() - + self.list = self.sensors() + } + + private func sensors() -> [Sensor_p] { var available: [String] = SMC.shared.getAllKeys() var list: [Sensor] = [] var sensorsList = SensorsList @@ -54,21 +69,36 @@ internal class SensorsReader: Reader<[Sensor_p]> { available.remove(at: idx) } } - sensorsList.filter{ $0.key.contains("%") }.forEach { (s: Sensor) in var index = 1 for i in 0..<10 { let key = s.key.replacingOccurrences(of: "%", with: "\(i)") - if available.firstIndex(where: { $0 == key }) != nil { + if let idx = available.firstIndex(where: { $0 == key }) { var sensor = s.copy() sensor.key = key sensor.name = s.name.replacingOccurrences(of: "%", with: "\(index)") list.append(sensor) + available.remove(at: idx) index += 1 } } } + if self.unknownSensorsState { + available.forEach { (key: String) in + var type: SensorType? = nil + switch key.prefix(1) { + case "T": type = .temperature + case "V": type = .voltage + case "P": type = .power + case "I": type = .current + default: type = nil + } + if let t = type { + list.append(Sensor(key: key, name: key, group: .unknown, type: t, platforms: [])) + } + } + } for sensor in list { if let newValue = SMC.shared.getValue(sensor.key) { @@ -78,7 +108,8 @@ internal class SensorsReader: Reader<[Sensor_p]> { } } - self.list += list.filter({ (s: Sensor) -> Bool in + var results: [Sensor_p] = [] + results += list.filter({ (s: Sensor) -> Bool in if s.type == .temperature && (s.value == 0 || s.value > 110) { return false } else if s.type == .current && s.value > 100 { @@ -89,11 +120,12 @@ internal class SensorsReader: Reader<[Sensor_p]> { #if arch(arm64) if self.HIDState { - self.list += self.initHIDSensors() + results += self.initHIDSensors() } #endif + results += self.initCalculatedSensors() - self.list += self.initCalculatedSensors() + return results } public override func read() { @@ -238,6 +270,10 @@ internal class SensorsReader: Reader<[Sensor_p]> { } }).sorted { $0.key.lowercased() < $1.key.lowercased() } } + + public func unknownCallback() { + self.list = self.sensors() + } } // MARK: - Fans diff --git a/Modules/Sensors/settings.swift b/Modules/Sensors/settings.swift index 0157a19b..2aa04e7f 100644 --- a/Modules/Sensors/settings.swift +++ b/Modules/Sensors/settings.swift @@ -17,6 +17,7 @@ internal class Settings: NSStackView, Settings_v { private var hidState: Bool private var fanSpeedState: Bool = false private var fansSyncState: Bool = false + private var unknownSensorsState: Bool = false private let title: String private var button: NSPopUpButton? @@ -24,6 +25,7 @@ internal class Settings: NSStackView, Settings_v { private var widgets: [widget_t] = [] public var callback: (() -> Void) = {} public var HIDcallback: (() -> Void) = {} + public var unknownCallback: (() -> Void) = {} public var setInterval: ((_ value: Int) -> Void) = {_ in } public init(_ title: String, list: [Sensor_p]) { @@ -49,6 +51,7 @@ internal class Settings: NSStackView, Settings_v { self.hidState = Store.shared.bool(key: "\(self.title)_hid", defaultValue: self.hidState) self.fanSpeedState = Store.shared.bool(key: "\(self.title)_speed", defaultValue: self.fanSpeedState) self.fansSyncState = Store.shared.bool(key: "\(self.title)_fansSync", defaultValue: self.fansSyncState) + self.unknownSensorsState = Store.shared.bool(key: "\(self.title)_unknown", defaultValue: self.unknownSensorsState) } required init?(coder: NSCoder) { @@ -88,6 +91,12 @@ internal class Settings: NSStackView, Settings_v { )) } + self.addArrangedSubview(toggleSettingRow( + title: localizedString("Show unknown sensors"), + action: #selector(toggleuUnknownSensors), + state: self.unknownSensorsState + )) + var types: [SensorType] = [] self.list.forEach { (s: Sensor_p) in if !types.contains(s.type) { @@ -154,15 +163,7 @@ internal class Settings: NSStackView, Settings_v { @objc private func handleSelection(_ sender: NSControl) { guard let id = sender.identifier else { return } - - var state: NSControl.StateValue? = nil - if #available(OSX 10.15, *) { - state = sender is NSSwitch ? (sender as! NSSwitch).state: nil - } else { - state = sender is NSButton ? (sender as! NSButton).state: nil - } - - Store.shared.set(key: "sensor_\(id.rawValue)", value: state! == NSControl.StateValue.on) + Store.shared.set(key: "sensor_\(id.rawValue)", value: controlState(sender)) self.callback() } @@ -175,40 +176,25 @@ internal class Settings: NSStackView, Settings_v { } @objc private func toggleSpeedState(_ sender: NSControl) { - var state: NSControl.StateValue? = nil - if #available(OSX 10.15, *) { - state = sender is NSSwitch ? (sender as! NSSwitch).state: nil - } else { - state = sender is NSButton ? (sender as! NSButton).state: nil - } - - self.fanSpeedState = state! == .on ? true : false + self.fanSpeedState = controlState(sender) Store.shared.set(key: "\(self.title)_speed", value: self.fanSpeedState) self.callback() } @objc func toggleHID(_ sender: NSControl) { - var state: NSControl.StateValue? = nil - if #available(OSX 10.15, *) { - state = sender is NSSwitch ? (sender as! NSSwitch).state: nil - } else { - state = sender is NSButton ? (sender as! NSButton).state: nil - } - - self.hidState = state! == .on ? true : false + self.hidState = controlState(sender) Store.shared.set(key: "\(self.title)_hid", value: self.hidState) self.HIDcallback() } @objc func toggleFansSync(_ sender: NSControl) { - var state: NSControl.StateValue? = nil - if #available(OSX 10.15, *) { - state = sender is NSSwitch ? (sender as! NSSwitch).state: nil - } else { - state = sender is NSButton ? (sender as! NSButton).state: nil - } - - self.fansSyncState = state! == .on ? true : false + self.fansSyncState = controlState(sender) Store.shared.set(key: "\(self.title)_fansSync", value: self.fansSyncState) } + + @objc func toggleuUnknownSensors(_ sender: NSControl) { + self.unknownSensorsState = controlState(sender) + Store.shared.set(key: "\(self.title)_unknown", value: self.unknownSensorsState) + self.unknownCallback() + } } diff --git a/Modules/Sensors/values.swift b/Modules/Sensors/values.swift index 0ee91b9d..e909704b 100644 --- a/Modules/Sensors/values.swift +++ b/Modules/Sensors/values.swift @@ -18,6 +18,7 @@ internal enum SensorGroup: String { case system = "Systems" case sensor = "Sensors" case hid = "HID" + case unknown = "Unknown" } internal enum SensorType: String { diff --git a/Stats/Supporting Files/bg.lproj/Localizable.strings b/Stats/Supporting Files/bg.lproj/Localizable.strings index 5bad0462..0d9d777a 100644 --- a/Stats/Supporting Files/bg.lproj/Localizable.strings +++ b/Stats/Supporting Files/bg.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Качване"; diff --git a/Stats/Supporting Files/ca.lproj/Localizable.strings b/Stats/Supporting Files/ca.lproj/Localizable.strings index 84bbfedd..f66b013d 100644 --- a/Stats/Supporting Files/ca.lproj/Localizable.strings +++ b/Stats/Supporting Files/ca.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Carregant"; diff --git a/Stats/Supporting Files/cs.lproj/Localizable.strings b/Stats/Supporting Files/cs.lproj/Localizable.strings index 173409e8..0c2c2552 100644 --- a/Stats/Supporting Files/cs.lproj/Localizable.strings +++ b/Stats/Supporting Files/cs.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronizace ovládání ventilátoru"; "Current" = "Proud"; "Energy" = "Energie"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Nahrávání"; diff --git a/Stats/Supporting Files/da.lproj/Localizable.strings b/Stats/Supporting Files/da.lproj/Localizable.strings index f5cb565d..158b3b6c 100644 --- a/Stats/Supporting Files/da.lproj/Localizable.strings +++ b/Stats/Supporting Files/da.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Upload"; diff --git a/Stats/Supporting Files/de.lproj/Localizable.strings b/Stats/Supporting Files/de.lproj/Localizable.strings index 5d307240..cff9dcff 100644 --- a/Stats/Supporting Files/de.lproj/Localizable.strings +++ b/Stats/Supporting Files/de.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Lüfter synchron halten"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Upload"; diff --git a/Stats/Supporting Files/el.lproj/Localizable.strings b/Stats/Supporting Files/el.lproj/Localizable.strings index 10b14238..f024b816 100644 --- a/Stats/Supporting Files/el.lproj/Localizable.strings +++ b/Stats/Supporting Files/el.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Μεταφόρτωση"; diff --git a/Stats/Supporting Files/en.lproj/Localizable.strings b/Stats/Supporting Files/en.lproj/Localizable.strings index 632dae34..125f3cfb 100644 --- a/Stats/Supporting Files/en.lproj/Localizable.strings +++ b/Stats/Supporting Files/en.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Upload"; diff --git a/Stats/Supporting Files/es.lproj/Localizable.strings b/Stats/Supporting Files/es.lproj/Localizable.strings index 148a0449..9fdafa5b 100644 --- a/Stats/Supporting Files/es.lproj/Localizable.strings +++ b/Stats/Supporting Files/es.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Carga"; diff --git a/Stats/Supporting Files/fr.lproj/Localizable.strings b/Stats/Supporting Files/fr.lproj/Localizable.strings index e9d24ac7..c9935b2c 100644 --- a/Stats/Supporting Files/fr.lproj/Localizable.strings +++ b/Stats/Supporting Files/fr.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Upload"; diff --git a/Stats/Supporting Files/he.lproj/Localizable.strings b/Stats/Supporting Files/he.lproj/Localizable.strings index a97d4eac..9c6e9a76 100644 --- a/Stats/Supporting Files/he.lproj/Localizable.strings +++ b/Stats/Supporting Files/he.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "העלאה"; diff --git a/Stats/Supporting Files/hr.lproj/Localizable.strings b/Stats/Supporting Files/hr.lproj/Localizable.strings index 765f26d6..77482b8d 100644 --- a/Stats/Supporting Files/hr.lproj/Localizable.strings +++ b/Stats/Supporting Files/hr.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Sinkroniziraj upravljanje ventilatora"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Slanje"; diff --git a/Stats/Supporting Files/hu.lproj/Localizable.strings b/Stats/Supporting Files/hu.lproj/Localizable.strings index 21cc770b..4cafad9c 100644 --- a/Stats/Supporting Files/hu.lproj/Localizable.strings +++ b/Stats/Supporting Files/hu.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Ventilátor vezérlés szinkronizálása"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Feltöltés"; diff --git a/Stats/Supporting Files/id.lproj/Localizable.strings b/Stats/Supporting Files/id.lproj/Localizable.strings index d39cd799..3f39a55f 100644 --- a/Stats/Supporting Files/id.lproj/Localizable.strings +++ b/Stats/Supporting Files/id.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Unggah"; diff --git a/Stats/Supporting Files/it.lproj/Localizable.strings b/Stats/Supporting Files/it.lproj/Localizable.strings index 3cff7565..dc345da4 100644 --- a/Stats/Supporting Files/it.lproj/Localizable.strings +++ b/Stats/Supporting Files/it.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Upload"; diff --git a/Stats/Supporting Files/ja.lproj/Localizable.strings b/Stats/Supporting Files/ja.lproj/Localizable.strings index a81ca754..753925b6 100644 --- a/Stats/Supporting Files/ja.lproj/Localizable.strings +++ b/Stats/Supporting Files/ja.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "送信"; diff --git a/Stats/Supporting Files/ko.lproj/Localizable.strings b/Stats/Supporting Files/ko.lproj/Localizable.strings index f6abb5cb..8ea1b998 100644 --- a/Stats/Supporting Files/ko.lproj/Localizable.strings +++ b/Stats/Supporting Files/ko.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "팬 제어 동기화"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "업로드"; diff --git a/Stats/Supporting Files/nb.lproj/Localizable.strings b/Stats/Supporting Files/nb.lproj/Localizable.strings index f0c975a9..4a6ddac8 100644 --- a/Stats/Supporting Files/nb.lproj/Localizable.strings +++ b/Stats/Supporting Files/nb.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Opplasting"; diff --git a/Stats/Supporting Files/nl.lproj/Localizable.strings b/Stats/Supporting Files/nl.lproj/Localizable.strings index f44c1928..95d74865 100644 --- a/Stats/Supporting Files/nl.lproj/Localizable.strings +++ b/Stats/Supporting Files/nl.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Uploaden"; diff --git a/Stats/Supporting Files/pl.lproj/Localizable.strings b/Stats/Supporting Files/pl.lproj/Localizable.strings index 96c04398..dbeb8662 100644 --- a/Stats/Supporting Files/pl.lproj/Localizable.strings +++ b/Stats/Supporting Files/pl.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronizuj sterowanie wentylatorami"; "Current" = "Prąd"; "Energy" = "Energia"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Wysyłanie"; diff --git a/Stats/Supporting Files/pt-BR.lproj/Localizable.strings b/Stats/Supporting Files/pt-BR.lproj/Localizable.strings index d52257a2..268a03c9 100644 --- a/Stats/Supporting Files/pt-BR.lproj/Localizable.strings +++ b/Stats/Supporting Files/pt-BR.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Enviando"; diff --git a/Stats/Supporting Files/pt-PT.lproj/Localizable.strings b/Stats/Supporting Files/pt-PT.lproj/Localizable.strings index 6a365d4f..5428a892 100644 --- a/Stats/Supporting Files/pt-PT.lproj/Localizable.strings +++ b/Stats/Supporting Files/pt-PT.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Enviando"; diff --git a/Stats/Supporting Files/ro.lproj/Localizable.strings b/Stats/Supporting Files/ro.lproj/Localizable.strings index 0bd8250e..176b6f3d 100644 --- a/Stats/Supporting Files/ro.lproj/Localizable.strings +++ b/Stats/Supporting Files/ro.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synchronize fan's control"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Incarcă"; diff --git a/Stats/Supporting Files/ru.lproj/Localizable.strings b/Stats/Supporting Files/ru.lproj/Localizable.strings index dab2d297..c2cb1749 100644 --- a/Stats/Supporting Files/ru.lproj/Localizable.strings +++ b/Stats/Supporting Files/ru.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Синхронизировать управление вентиляторами"; "Current" = "Ток"; "Energy" = "Энергия"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Выгрузка"; diff --git a/Stats/Supporting Files/sl.lproj/Localizable.strings b/Stats/Supporting Files/sl.lproj/Localizable.strings index 60fdddf5..9be4cdfd 100644 --- a/Stats/Supporting Files/sl.lproj/Localizable.strings +++ b/Stats/Supporting Files/sl.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Sinhroniziraj krmiljenje ventilatorja"; "Current" = "Tok"; "Energy" = "Energija"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Oddajanje"; diff --git a/Stats/Supporting Files/sv.lproj/Localizable.strings b/Stats/Supporting Files/sv.lproj/Localizable.strings index f2a1f73b..5fcfa064 100644 --- a/Stats/Supporting Files/sv.lproj/Localizable.strings +++ b/Stats/Supporting Files/sv.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Synkronisera fläktkontroll"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Skickar"; diff --git a/Stats/Supporting Files/tr.lproj/Localizable.strings b/Stats/Supporting Files/tr.lproj/Localizable.strings index 5a232a82..95554239 100644 --- a/Stats/Supporting Files/tr.lproj/Localizable.strings +++ b/Stats/Supporting Files/tr.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Fanın kontrolünü senkronize et"; "Current" = "Akım"; "Energy" = "Enerji"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Yükleme"; diff --git a/Stats/Supporting Files/uk.lproj/Localizable.strings b/Stats/Supporting Files/uk.lproj/Localizable.strings index 3d577527..a2bdc3dd 100644 --- a/Stats/Supporting Files/uk.lproj/Localizable.strings +++ b/Stats/Supporting Files/uk.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Синхронізація керування вентиляторами"; "Current" = "Струм"; "Energy" = "Енергія"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Висилання"; diff --git a/Stats/Supporting Files/vi.lproj/Localizable.strings b/Stats/Supporting Files/vi.lproj/Localizable.strings index fd73bbcf..6d6cfd84 100644 --- a/Stats/Supporting Files/vi.lproj/Localizable.strings +++ b/Stats/Supporting Files/vi.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "Đồng bộ hóa điều khiển của quạt"; "Current" = "Current"; "Energy" = "Energy"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "Tải lên"; diff --git a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings index f033eb65..0b200d99 100644 --- a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "同步控制风扇"; "Current" = "电流"; "Energy" = "能耗"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "上传"; diff --git a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings index 4f4d117d..54228f48 100644 --- a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings @@ -273,6 +273,7 @@ "Synchronize fan's control" = "同步風扇控制"; "Current" = "電流"; "Energy" = "能耗"; +"Show unknown sensors" = "Show unknown sensors"; // Network "Uploading" = "上傳";