Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/MacOptimizer/App/MacOptimizerApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ struct MenuBarView: View {
Spacer()

MetricBadge(
text: metrics.cpuStats.thermalState.rawValue,
text: metrics.cpuStats.thermalState.localizedTitle,
colorName: metrics.cpuStats.thermalState.colorName
)
}
Expand Down
21 changes: 20 additions & 1 deletion Sources/MacOptimizer/Models/SystemStats.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@ public struct MemoryStats: Sendable, Equatable {
case warning = "Uyarı"
case critical = "Kritik"

/// Localized display label. Raw values are kept stable and must not be shown in the UI.
public var localizedTitle: String {
switch self {
case .normal: return L10n.string("Normal", table: .dashboard)
case .warning: return L10n.string("Warning", table: .dashboard)
case .critical: return L10n.string("Critical", table: .dashboard)
}
}

public var colorName: String {
switch self {
case .normal: return "green"
Expand Down Expand Up @@ -71,6 +80,16 @@ public struct CPUStats: Sendable, Equatable {
case serious = "Yüksek Sıcaklık (Kısılma Riski)"
case critical = "Kritik Sıcaklık (Fanlar Maksimumda)"

/// Localized display label. Raw values are kept stable and must not be shown in the UI.
public var localizedTitle: String {
switch self {
case .nominal: return L10n.string("Normal (Cool)", table: .dashboard)
case .fair: return L10n.string("Slightly Warm", table: .dashboard)
case .serious: return L10n.string("High Temperature (Throttling Risk)", table: .dashboard)
case .critical: return L10n.string("Critical Temperature (Fans at Maximum)", table: .dashboard)
}
}

public var colorName: String {
switch self {
case .nominal: return "green"
Expand Down Expand Up @@ -122,7 +141,7 @@ public struct BatteryStats: Sendable, Equatable {
public var temperatureCelsius: Double = 28.0
public var designCapacityMah: Int = 0
public var timeRemainingFormatted: String = ""
public var powerSource: String = "AC Gücü"
public var powerSource: String = L10n.string("AC Power", table: .dashboard)

public var isOverheating: Bool {
temperatureCelsius > 38.0
Expand Down
70 changes: 70 additions & 0 deletions Sources/MacOptimizer/Resources/en.lproj/dashboard.strings
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,73 @@
"PID: %lld" = "PID: %lld";
"Protected macOS system process (cannot be terminated)" = "Protected macOS system process (cannot be terminated)";
"Terminate process (PID: %lld)" = "Terminate process (PID: %lld)";
"Terminate Process" = "Terminate Process";
"Quit %@ (PID: %lld)? Unsaved data may be lost." = "Quit %@ (PID: %lld)? Unsaved data may be lost.";
"Selected process" = "Selected process";
"Force Quit" = "Force Quit";
"Cancel" = "Cancel";
"Memory Usage" = "Memory Usage";
"RAM Memory Management" = "RAM Memory Management";
"Pressure: %@" = "Pressure: %@";
"If memory pressure is high, you can quit memory-heavy apps from the list below." = "If memory pressure is high, you can quit memory-heavy apps from the list below.";
"Running Processes & Task Manager" = "Running Processes & Task Manager";
"Apps Only" = "Apps Only";
"App / Process" = "App / Process";
"Action" = "Action";
"System" = "System";
"Protected macOS system process" = "Protected macOS system process";
"Quit" = "Quit";
"Process name or PID..." = "Process name or PID...";
"Optimization History & SQLite Telemetry" = "Optimization History & SQLite Telemetry";
"Total RAM Recovered: %@" = "Total RAM Recovered: %@";
"Total Disk Recovered: %@" = "Total Disk Recovered: %@";
"RAM Recovered: %@" = "RAM Recovered: %@";
"Disk Recovered: %@" = "Disk Recovered: %@";
"Clear History" = "Clear History";
"System Performance History (SQLite)" = "System Performance History (SQLite)";
"Time Range" = "Time Range";
"Last 1 Hour" = "Last 1 Hour";
"Last 24 Hours" = "Last 24 Hours";
"Last 48 Hours" = "Last 48 Hours";
"Time" = "Time";
"Metric" = "Metric";
"Not enough SQLite telemetry records were found in this time range." = "Not enough SQLite telemetry records were found in this time range.";
"CPU Usage" = "CPU Usage";
"RAM Usage" = "RAM Usage";
"%lld data points (SQLite WAL)" = "%lld data points (SQLite WAL)";
"No Optimization Records Yet" = "No Optimization Records Yet";
"Your file cleanup operations will be listed here." = "Your file cleanup operations will be listed here.";
"Autonomous System Protection & Watchdog" = "Autonomous System Protection & Watchdog";
"Enabled" = "Enabled";
"Disabled" = "Disabled";
"Continuously monitors memory pressure, frozen background processes, and disk congestion; intervenes automatically when needed." = "Continuously monitors memory pressure, frozen background processes, and disk congestion; intervenes automatically when needed.";
"Auto-Healing" = "Auto-Healing";
"%lld events" = "%lld events";
"Pending Alerts" = "Pending Alerts";
"%lld pending" = "%lld pending";
"Resolved Events" = "Resolved Events";
"%lld resolved" = "%lld resolved";
"Autonomous Monitoring & Anomaly Log" = "Autonomous Monitoring & Anomaly Log";
"Clear Log" = "Clear Log";
"No Anomalies Detected" = "No Anomalies Detected";
"The background monitor is watching the system. Any unusual activity or memory pressure will be listed here." = "The background monitor is watching the system. Any unusual activity or memory pressure will be listed here.";
"Auto-Healed" = "Auto-Healed";
"Resolved" = "Resolved";
"Active Alert" = "Active Alert";
"Security & Privacy Audit" = "Security & Privacy Audit";
"Audit macOS System Integrity Protection (SIP), Gatekeeper, the Firewall, and system permissions." = "Audit macOS System Integrity Protection (SIP), Gatekeeper, the Firewall, and system permissions.";
"Auditing..." = "Auditing...";
"Audit Again" = "Audit Again";
"/100 Points" = "/100 Points";
"Native macOS security mechanisms were inspected. Core system integrity and resistance to unauthorized tampering were measured." = "Native macOS security mechanisms were inspected. Core system integrity and resistance to unauthorized tampering were measured.";
"Auditing macOS Security Settings..." = "Auditing macOS Security Settings...";
"Security Audit Not Started" = "Security Audit Not Started";
"Start Audit" = "Start Audit";
"Normal" = "Normal";
"Warning" = "Warning";
"Critical" = "Critical";
"Normal (Cool)" = "Normal (Cool)";
"Slightly Warm" = "Slightly Warm";
"High Temperature (Throttling Risk)" = "High Temperature (Throttling Risk)";
"Critical Temperature (Fans at Maximum)" = "Critical Temperature (Fans at Maximum)";
"AC Power" = "AC Power";
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>%lld anomaly awaiting review</string><key>other</key><string>%lld anomalies awaiting review</string></dict>
</dict>
<key>%lld cycles</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld cycle</string><key>other</key><string>%lld cycles</string></dict></dict><key>Last %lld samples (Live Darwin API)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>Last %lld sample (Live Darwin API)</string><key>other</key><string>Last %lld samples (Live Darwin API)</string></dict></dict></dict></plist>
<key>%lld cycles</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld cycle</string><key>other</key><string>%lld cycles</string></dict></dict><key>Last %lld samples (Live Darwin API)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>Last %lld sample (Live Darwin API)</string><key>other</key><string>Last %lld samples (Live Darwin API)</string></dict></dict><key>%lld events</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld event</string><key>other</key><string>%lld events</string></dict></dict><key>%lld data points (SQLite WAL)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld data point (SQLite WAL)</string><key>other</key><string>%lld data points (SQLite WAL)</string></dict></dict></dict></plist>
70 changes: 70 additions & 0 deletions Sources/MacOptimizer/Resources/tr.lproj/dashboard.strings
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,73 @@
"PID: %lld" = "PID: %lld";
"Protected macOS system process (cannot be terminated)" = "Korunan macOS sistem süreci (sonlandırılamaz)";
"Terminate process (PID: %lld)" = "İşlemi kapat (PID: %lld)";
"Terminate Process" = "İşlemi Sonlandır";
"Quit %@ (PID: %lld)? Unsaved data may be lost." = "%@ (PID: %lld) kapatılsın mı? Kaydedilmemiş veriler kaybolabilir.";
"Selected process" = "Seçili işlem";
"Force Quit" = "Zorla Kapat";
"Cancel" = "Vazgeç";
"Memory Usage" = "Bellek Kullanımı";
"RAM Memory Management" = "RAM Bellek Yönetimi";
"Pressure: %@" = "Basınç: %@";
"If memory pressure is high, you can quit memory-heavy apps from the list below." = "Bellek baskısı yüksekse, aşağıdaki listeden yoğun bellek kullanan uygulamaları kapatabilirsiniz.";
"Running Processes & Task Manager" = "Çalışan Süreçler & Görev Yöneticisi";
"Apps Only" = "Yalnızca Uygulamalar";
"App / Process" = "Uygulama / İşlem";
"Action" = "Eylem";
"System" = "Sistem";
"Protected macOS system process" = "macOS Korunan Sistem Süreci";
"Quit" = "Kapat";
"Process name or PID..." = "Süreç adı veya PID...";
"Optimization History & SQLite Telemetry" = "Optimizasyon Geçmişi & SQLite Telemetri";
"Total RAM Recovered: %@" = "Toplam Kazanılan RAM: %@";
"Total Disk Recovered: %@" = "Toplam Kazanılan Disk: %@";
"RAM Recovered: %@" = "Kazanılan RAM: %@";
"Disk Recovered: %@" = "Kazanılan Disk: %@";
"Clear History" = "Geçmişi Temizle";
"System Performance History (SQLite)" = "Sistem Performans Geçmişi (SQLite)";
"Time Range" = "Zaman Aralığı";
"Last 1 Hour" = "Son 1 Saat";
"Last 24 Hours" = "Son 24 Saat";
"Last 48 Hours" = "Son 48 Saat";
"Time" = "Zaman";
"Metric" = "Metrik";
"Not enough SQLite telemetry records were found in this time range." = "Bu zaman aralığında yeterli SQLite telemetri kaydı bulunamadı.";
"CPU Usage" = "CPU Kullanımı";
"RAM Usage" = "RAM Kullanımı";
"%lld data points (SQLite WAL)" = "%lld Veri Noktası (SQLite WAL)";
"No Optimization Records Yet" = "Henüz Optimizasyon Kaydı Yok";
"Your file cleanup operations will be listed here." = "Yaptığınız dosya temizleme işlemleri burada listelenecektir.";
"Autonomous System Protection & Watchdog" = "Otonom Sistem Koruması & Watchdog";
"Enabled" = "Aktif";
"Disabled" = "Devre Dışı";
"Continuously monitors memory pressure, frozen background processes, and disk congestion; intervenes automatically when needed." = "Bellek baskılarını, donan arka plan süreçlerini ve disk tıkanıklıklarını sürekli gözlemler; gerektiğinde otomatik müdahale eder.";
"Auto-Healing" = "Otomatik İyileştirme";
"%lld events" = "%lld Olay";
"Pending Alerts" = "Bekleyen Uyarılar";
"%lld pending" = "%lld Bekliyor";
"Resolved Events" = "Çözülen Olaylar";
"%lld resolved" = "%lld Çözüldü";
"Autonomous Monitoring & Anomaly Log" = "Otonom İzleme & Anomali Günlüğü";
"Clear Log" = "Günlüğü Temizle";
"No Anomalies Detected" = "Sistemde Herhangi Bir Anomali Yok";
"The background monitor is watching the system. Any unusual activity or memory pressure will be listed here." = "Arka plan denetleyicisi sistemi izliyor. Olağandışı bir durum veya bellek baskısı olduğunda burada listelenecektir.";
"Auto-Healed" = "Otomatik İyileştirildi";
"Resolved" = "Çözüldü";
"Active Alert" = "Aktif Uyarı";
"Security & Privacy Audit" = "Güvenlik & Gizlilik Denetimi";
"Audit macOS System Integrity Protection (SIP), Gatekeeper, the Firewall, and system permissions." = "macOS çekirdek koruma durumu (SIP), Gatekeeper, Güvenlik Duvarı ve sistem izinlerini denetleyin.";
"Auditing..." = "Denetleniyor...";
"Audit Again" = "Yeniden Denetle";
"/100 Points" = "/100 Puan";
"Native macOS security mechanisms were inspected. Core system integrity and resistance to unauthorized tampering were measured." = "macOS yerel güvenlik mekanizmaları incelendi. Sistemin temel bütünlüğü ve yetkisiz müdahale direnci ölçüldü.";
"Auditing macOS Security Settings..." = "macOS Güvenlik Ayarları Denetleniyor...";
"Security Audit Not Started" = "Güvenlik Denetimi Başlatılmadı";
"Start Audit" = "Denetimi Başlat";
"Normal" = "Normal";
"Warning" = "Uyarı";
"Critical" = "Kritik";
"Normal (Cool)" = "Normal (Serin)";
"Slightly Warm" = "Hafif Isınma";
"High Temperature (Throttling Risk)" = "Yüksek Sıcaklık (Kısılma Riski)";
"Critical Temperature (Fans at Maximum)" = "Kritik Sıcaklık (Fanlar Maksimumda)";
"AC Power" = "AC Gücü";
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>İncelenmeyi bekleyen anomali sayısı: %lld</string><key>other</key><string>İncelenmeyi bekleyen anomali sayısı: %lld</string></dict>
</dict>
<key>%lld cycles</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld döngü</string><key>other</key><string>%lld döngü</string></dict></dict><key>Last %lld samples (Live Darwin API)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>Son %lld örnek (Canlı Darwin API)</string><key>other</key><string>Son %lld örnek (Canlı Darwin API)</string></dict></dict></dict></plist>
<key>%lld cycles</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld döngü</string><key>other</key><string>%lld döngü</string></dict></dict><key>Last %lld samples (Live Darwin API)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>Son %lld örnek (Canlı Darwin API)</string><key>other</key><string>Son %lld örnek (Canlı Darwin API)</string></dict></dict><key>%lld events</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld Olay</string><key>other</key><string>%lld Olay</string></dict></dict><key>%lld data points (SQLite WAL)</key><dict><key>NSStringLocalizedFormatKey</key><string>%#@count@</string><key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string><key>one</key><string>%lld Veri Noktası (SQLite WAL)</string><key>other</key><string>%lld Veri Noktası (SQLite WAL)</string></dict></dict></dict></plist>
Loading
Loading