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
40 changes: 40 additions & 0 deletions Sources/MacOptimizer/Resources/en.lproj/cleanup.strings
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,43 @@
"System" = "System";
"Startup Services Not Scanned" = "Startup Services Not Scanned";
"Start a scan to see the services and startup apps running in the background." = "Start a scan to see the services and startup apps running in the background.";
"Junk File & Disk Cleaner" = "Junk File & Disk Cleaner";
"Total Found: %@ • Selected: %@" = "Total Found: %@ • Selected: %@";
"Scan system caches, Xcode leftovers, logs, and browser data." = "Scan system caches, Xcode leftovers, logs, and browser data.";
"Cancel Scan" = "Cancel Scan";
"Scan" = "Scan";
"Cleaning..." = "Cleaning...";
"Clean (%@)" = "Clean (%@)";
"Junk Files Not Scanned Yet" = "Junk Files Not Scanned Yet";
"Scan system caches, build leftovers, and logs to reclaim disk space." = "Scan system caches, build leftovers, and logs to reclaim disk space.";
"Start Scan" = "Start Scan";
"(%lld items)" = "(%lld items)";
"Selected: %@" = "Selected: %@";
"Show in Finder" = "Show in Finder";
"Cleaning Plan & Risk Preview (Dry-Run)" = "Cleaning Plan & Risk Preview (Dry-Run)";
"A safety plan created before any changes are made on disk." = "A safety plan created before any changes are made on disk.";
"Space to be Reclaimed:" = "Space to be Reclaimed:";
"Items to Clean:" = "Items to Clean:";
"%lld Items" = "%lld Items";
"Maximum Risk:" = "Maximum Risk:";
"Zero-Harm Protection Shield Active" = "Zero-Harm Protection Shield Active";
"Root system files, your personal documents, and critical macOS services are strictly protected. Files outside the cache are moved to the Trash safely." = "Root system files, your personal documents, and critical macOS services are strictly protected. Files outside the cache are moved to the Trash safely.";
"Plan Warnings" = "Plan Warnings";
"• %@" = "• %@";
"Files and Folders to Clean:" = "Files and Folders to Clean:";
"Approve Plan and Clean (%@)" = "Approve Plan and Clean (%@)";
"Delete Duplicate Files" = "Delete Duplicate Files";
"%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?" = "%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?";
"Move to Trash" = "Move to Trash";
"Duplicate File Finder" = "Duplicate File Finder";
"Find copy files with the same content (SHA-256) and free up gigabytes on your disk." = "Find copy files with the same content (SHA-256) and free up gigabytes on your disk.";
"Scan for Duplicates" = "Scan for Duplicates";
"Folders to Scan:" = "Folders to Scan:";
"Cancel the Scan" = "Cancel the Scan";
"Total Space to be Reclaimed:" = "Total Space to be Reclaimed:";
"Move Selected Copies to Trash (%lld Files)" = "Move Selected Copies to Trash (%lld Files)";
"%lld Duplicate Files" = "%lld Duplicate Files";
"Original (Kept)" = "Original (Kept)";
"Copy" = "Copy";
"Duplicate File Scan Not Run" = "Duplicate File Scan Not Run";
"Start a scan to detect files with identical content in your Downloads, Documents, and Pictures folders." = "Start a scan to detect files with identical content in your Downloads, Documents, and Pictures folders.";
25 changes: 25 additions & 0 deletions Sources/MacOptimizer/Resources/en.lproj/cleanup.stringsdict
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,29 @@
<key>items</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>%lld item</string><key>other</key><string>%lld items</string></dict>
</dict>
<key>(%lld items)</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 item)</string><key>other</key><string>(%lld items)</string></dict>
</dict>
<key>%lld Items</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 Item</string><key>other</key><string>%lld Items</string></dict>
</dict>
<key>%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?</key><dict>
<key>NSStringLocalizedFormatKey</key><string>%#@count@ selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?</string>
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>%lld selected duplicate file will be moved to the Trash. Original files will be kept. Do you confirm?</string><key>other</key><string>%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?</string></dict>
</dict>
<key>Move Selected Copies to Trash (%lld Files)</key><dict>
<key>NSStringLocalizedFormatKey</key><string>Move Selected Copies to Trash (%#@count@)</string>
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>Move Selected Copies to Trash (%lld File)</string><key>other</key><string>Move Selected Copies to Trash (%lld Files)</string></dict>
</dict>
<key>%lld Duplicate Files</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 Duplicate File</string><key>other</key><string>%lld Duplicate Files</string></dict>
</dict>
</dict></plist>
40 changes: 40 additions & 0 deletions Sources/MacOptimizer/Resources/tr.lproj/cleanup.strings
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,43 @@
"System" = "Sistem";
"Startup Services Not Scanned" = "Başlangıç Servisleri Taranmadı";
"Start a scan to see the services and startup apps running in the background." = "Arka planda çalışan servisleri ve başlangıç uygulamalarını görmek için taramayı başlatın.";
"Junk File & Disk Cleaner" = "Gereksiz Dosya & Disk Temizleyici";
"Total Found: %@ • Selected: %@" = "Toplam Bulunan: %@ • Seçili: %@";
"Scan system caches, Xcode leftovers, logs, and browser data." = "Sistem önbellekleri, Xcode kalıntıları, loglar ve tarayıcı verilerini tarayın.";
"Cancel Scan" = "İptal";
"Scan" = "Tara";
"Cleaning..." = "Temizleniyor...";
"Clean (%@)" = "Temizle (%@)";
"Junk Files Not Scanned Yet" = "Gereksiz Dosyalar Henüz Taranmadı";
"Scan system caches, build leftovers, and logs to reclaim disk space." = "Disk alanınızı geri kazanmak için sistem önbelleklerini, derleme kalıntılarını ve günlükleri tarayın.";
"Start Scan" = "Taramayı Başlat";
"(%lld items)" = "(%lld öğe)";
"Selected: %@" = "Seçili: %@";
"Show in Finder" = "Finder'da Göster";
"Cleaning Plan & Risk Preview (Dry-Run)" = "Temizlik Planı & Risk Önizlemesi (Dry-Run)";
"A safety plan created before any changes are made on disk." = "Disk üzerinde değişiklik yapılmadan önce oluşturulan güvenlik planı.";
"Space to be Reclaimed:" = "Kazanılacak Alan:";
"Items to Clean:" = "Temizlenecek Öğe:";
"%lld Items" = "%lld Adet";
"Maximum Risk:" = "Maksimum Risk:";
"Zero-Harm Protection Shield Active" = "Zero-Harm Savunma Kalkanı Aktif";
"Root system files, your personal documents, and critical macOS services are strictly protected. Files outside the cache are moved to the Trash safely." = "Kök sistem dosyaları, kişisel belgeleriniz ve kritik macOS servisleri kesinlikle korunmaktadır. Önbellek dışı dosyalar Çöp Sepeti korumalı olarak taşınır.";
"Plan Warnings" = "Plan Uyarıları";
"• %@" = "• %@";
"Files and Folders to Clean:" = "Temizlenecek Dosya ve Klasörler:";
"Approve Plan and Clean (%@)" = "Planı Onayla ve Temizle (%@)";
"Delete Duplicate Files" = "Yinelenen Dosyaları Sil";
"%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?" = "Seçili %lld adet kopya dosya Çöp Sepetine taşınacaktır. Orijinal dosyalar korunacaktır. Onaylıyor musunuz?";
"Move to Trash" = "Çöp Kutusuna Taşı";
"Duplicate File Finder" = "Yinelenen Dosya Bulucu";
"Find copy files with the same content (SHA-256) and free up gigabytes on your disk." = "Aynı içeriğe (SHA-256) sahip kopya dosyaları bularak diskinizde gigabaytlarca yer açın.";
"Scan for Duplicates" = "Yinelenenleri Tara";
"Folders to Scan:" = "Taranacak Dizinler:";
"Cancel the Scan" = "Taramayı İptal Et";
"Total Space to be Reclaimed:" = "Kazanılacak Toplam Alan:";
"Move Selected Copies to Trash (%lld Files)" = "Seçilen Kopyaları Çöpe Taşı (%lld Dosya)";
"%lld Duplicate Files" = "%lld Kopya Dosya";
"Original (Kept)" = "Orijinal (Korunuyor)";
"Copy" = "Kopya";
"Duplicate File Scan Not Run" = "Yinelenen Dosya Taraması Yapılmadı";
"Start a scan to detect files with identical content in your Downloads, Documents, and Pictures folders." = "İndirilenler, Belgeler ve Resimler klasörlerindeki aynı içerikli dosyaları tespit etmek için taramayı başlatın.";
25 changes: 25 additions & 0 deletions Sources/MacOptimizer/Resources/tr.lproj/cleanup.stringsdict
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,29 @@
<key>items</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>%lld öğe</string><key>other</key><string>%lld öğe</string></dict>
</dict>
<key>(%lld items)</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 öğe)</string><key>other</key><string>(%lld öğe)</string></dict>
</dict>
<key>%lld Items</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 Adet</string><key>other</key><string>%lld Adet</string></dict>
</dict>
<key>%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?</key><dict>
<key>NSStringLocalizedFormatKey</key><string>Seçili %#@count@ adet kopya dosya Çöp Sepetine taşınacaktır. Orijinal dosyalar korunacaktır. Onaylıyor musunuz?</string>
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>Seçili %lld adet kopya dosya Çöp Sepetine taşınacaktır. Orijinal dosyalar korunacaktır. Onaylıyor musunuz?</string><key>other</key><string>Seçili %lld adet kopya dosya Çöp Sepetine taşınacaktır. Orijinal dosyalar korunacaktır. Onaylıyor musunuz?</string></dict>
</dict>
<key>Move Selected Copies to Trash (%lld Files)</key><dict>
<key>NSStringLocalizedFormatKey</key><string>Seçilen Kopyaları Çöpe Taşı (%#@count@ Dosya)</string>
<key>count</key><dict><key>NSStringFormatSpecTypeKey</key><string>NSStringPluralRuleType</string><key>NSStringFormatValueTypeKey</key><string>lld</string>
<key>one</key><string>Seçilen Kopyaları Çöpe Taşı (%lld Dosya)</string><key>other</key><string>Seçilen Kopyaları Çöpe Taşı (%lld Dosya)</string></dict>
</dict>
<key>%lld Duplicate Files</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 Kopya Dosya</string><key>other</key><string>%lld Kopya Dosya</string></dict>
</dict>
</dict></plist>
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@ public struct DuplicateFinderView: View {
.background(Color(NSColor.windowBackgroundColor).opacity(0.5))
.alert(isPresented: $showConfirmDelete) {
Alert(
title: Text("Yinelenen Dosyaları Sil"),
message: Text("Seçili \(selectedDuplicatesCount) adet kopya dosya Çöp Sepetine taşınacaktır. Orijinal dosyalar korunacaktır. Onaylıyor musunuz?"),
primaryButton: .destructive(Text("Çöp Kutusuna Taşı")) {
title: Text(l10n: "Delete Duplicate Files", table: .cleanup),
message: Text(L10n.string("%lld selected duplicate files will be moved to the Trash. Original files will be kept. Do you confirm?", table: .cleanup, Int64(selectedDuplicatesCount))),
primaryButton: .destructive(Text(l10n: "Move to Trash", table: .cleanup)) {
appState.cleanDuplicates()
},
secondaryButton: .cancel(Text("Vazgeç"))
secondaryButton: .cancel(Text(L10n.string("Cancel", table: .cleanup)))
)
}
}
Expand All @@ -59,11 +59,11 @@ public struct DuplicateFinderView: View {
}

VStack(alignment: .leading, spacing: 3) {
Text("Yinelenen Dosya Bulucu")
Text(l10n: "Duplicate File Finder", table: .cleanup)
.font(.system(size: 16, weight: .bold))
.lineLimit(1)

Text("Aynı içeriğe (SHA-256) sahip kopya dosyaları bularak diskinizde gigabaytlarca yer açın.")
Text(l10n: "Find copy files with the same content (SHA-256) and free up gigabytes on your disk.", table: .cleanup)
.font(.system(size: 12))
.foregroundColor(.secondary)
.lineLimit(2)
Expand All @@ -72,7 +72,7 @@ public struct DuplicateFinderView: View {
Spacer(minLength: 12)

ActionButton(
title: appState.isScanningDuplicates ? "Taranıyor..." : "Yinelenenleri Tara",
title: appState.isScanningDuplicates ? L10n.string("Scanning...", table: .cleanup) : L10n.string("Scan for Duplicates", table: .cleanup),
iconName: "magnifyingglass",
gradient: SystemTheme.junkGradient,
isLoading: appState.isScanningDuplicates
Expand All @@ -83,7 +83,7 @@ public struct DuplicateFinderView: View {

// Target Folders Filter Chips
HStack(spacing: 8) {
Text("Taranacak Dizinler:")
Text(l10n: "Folders to Scan:", table: .cleanup)
.font(.system(size: 11, weight: .semibold))
.foregroundColor(.secondary)

Expand Down Expand Up @@ -132,7 +132,7 @@ public struct DuplicateFinderView: View {
.lineLimit(1)
.truncationMode(.middle)

Button("Taramayı İptal Et") {
Button(L10n.string("Cancel the Scan", table: .cleanup)) {
appState.cancelDuplicateScan()
}
.buttonStyle(.plain)
Expand Down Expand Up @@ -162,7 +162,7 @@ public struct DuplicateFinderView: View {
GlassCard(cornerRadius: 14, padding: 14) {
HStack {
VStack(alignment: .leading, spacing: 2) {
Text("Kazanılacak Toplam Alan:")
Text(l10n: "Total Space to be Reclaimed:", table: .cleanup)
.font(.system(size: 11))
.foregroundColor(.secondary)

Expand All @@ -174,7 +174,7 @@ public struct DuplicateFinderView: View {
Spacer()

ActionButton(
title: appState.isCleaningDuplicates ? "Temizleniyor..." : "Seçilen Kopyaları Çöpe Taşı (\(selectedDuplicatesCount) Dosya)",
title: appState.isCleaningDuplicates ? L10n.string("Cleaning...", table: .cleanup) : L10n.string("Move Selected Copies to Trash (%lld Files)", table: .cleanup, Int64(selectedDuplicatesCount)),
iconName: "trash.fill",
gradient: SystemTheme.dangerGradient,
isLoading: appState.isCleaningDuplicates
Expand Down Expand Up @@ -204,14 +204,14 @@ public struct DuplicateFinderView: View {

Spacer()

Text("\(group.wrappedValue.duplicates.count) Kopya Dosya")
Text(L10n.string("%lld Duplicate Files", table: .cleanup, Int64(group.wrappedValue.duplicates.count)))
.font(.system(size: 11, weight: .medium))
.foregroundColor(.secondary)
}

// Original File (Preserved)
HStack(spacing: 8) {
MetricBadge(text: "Orijinal (Korunuyor)", colorName: "green")
MetricBadge(text: L10n.string("Original (Kept)", table: .cleanup), colorName: "green")

Text(group.wrappedValue.original.path)
.font(.system(size: 10))
Expand All @@ -228,7 +228,7 @@ public struct DuplicateFinderView: View {
.foregroundColor(.secondary)
}
.buttonStyle(.plain)
.help("Finder'da Göster")
.help(L10n.string("Show in Finder", table: .cleanup))
}
.padding(6)
.background(Color.green.opacity(0.06))
Expand All @@ -245,7 +245,7 @@ public struct DuplicateFinderView: View {
}
.buttonStyle(.plain)

MetricBadge(text: "Kopya", colorName: "purple")
MetricBadge(text: L10n.string("Copy", table: .cleanup), colorName: "purple")

Text(dup.path)
.font(.system(size: 10))
Expand Down Expand Up @@ -281,17 +281,17 @@ public struct DuplicateFinderView: View {
.font(.system(size: 44))
.foregroundStyle(SystemTheme.junkGradient)

Text(appState.duplicateStatusMessage.isEmpty ? "Yinelenen Dosya Taraması Yapılmadı" : appState.duplicateStatusMessage)
Text(appState.duplicateStatusMessage.isEmpty ? L10n.string("Duplicate File Scan Not Run", table: .cleanup) : appState.duplicateStatusMessage)
.font(.system(size: 16, weight: .bold))

Text("İndirilenler, Belgeler ve Resimler klasörlerindeki aynı içerikli dosyaları tespit etmek için taramayı başlatın.")
Text(l10n: "Start a scan to detect files with identical content in your Downloads, Documents, and Pictures folders.", table: .cleanup)
.font(.system(size: 12))
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
.frame(maxWidth: 420)

ActionButton(
title: "Taramayı Başlat",
title: L10n.string("Start Scan", table: .cleanup),
iconName: "magnifyingglass",
gradient: SystemTheme.junkGradient
) {
Expand Down
Loading
Loading