From 1b7c14cb8b79e73e2850f62189f068a975dd655b Mon Sep 17 00:00:00 2001
From: Shadow <124238783+ShadowLoveElysia@users.noreply.github.com>
Date: Mon, 24 Nov 2025 03:02:10 +0800
Subject: [PATCH 1/5] Add multi-language support (i18n) via JSON config
---
CompactGUI/CompactGUI.vbproj | 12 +--
CompactGUI/LanguageConfig.vb | 33 +++++++
CompactGUI/MainWindow.xaml.vb | 1 +
CompactGUI/TranslationHelper.vb | 158 ++++++++++++++++++++++++++++++++
CompactGUI/i18n/de-DE.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/es-ES.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/fr-FR.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/ja-JP.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/ko-KR.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/ru-RU.json | 146 +++++++++++++++++++++++++++++
CompactGUI/i18n/zh-CN.json | 146 +++++++++++++++++++++++++++++
11 files changed, 1220 insertions(+), 6 deletions(-)
create mode 100644 CompactGUI/LanguageConfig.vb
create mode 100644 CompactGUI/TranslationHelper.vb
create mode 100644 CompactGUI/i18n/de-DE.json
create mode 100644 CompactGUI/i18n/es-ES.json
create mode 100644 CompactGUI/i18n/fr-FR.json
create mode 100644 CompactGUI/i18n/ja-JP.json
create mode 100644 CompactGUI/i18n/ko-KR.json
create mode 100644 CompactGUI/i18n/ru-RU.json
create mode 100644 CompactGUI/i18n/zh-CN.json
diff --git a/CompactGUI/CompactGUI.vbproj b/CompactGUI/CompactGUI.vbproj
index babeb9f..210c3e1 100644
--- a/CompactGUI/CompactGUI.vbproj
+++ b/CompactGUI/CompactGUI.vbproj
@@ -63,12 +63,7 @@
-
-
-
-
- ..\..\FunctionalConverters\FunctionalConverters\bin\Release\net6.0-windows\FunctionalConverters.dll
-
+
@@ -90,5 +85,10 @@
+
+
+ PreserveNewest
+
+
diff --git a/CompactGUI/LanguageConfig.vb b/CompactGUI/LanguageConfig.vb
new file mode 100644
index 0000000..cde4985
--- /dev/null
+++ b/CompactGUI/LanguageConfig.vb
@@ -0,0 +1,33 @@
+Imports System.IO
+Imports System.Text.Json
+
+Public Class LanguageConfig
+ Private Shared ConfigPath As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "language_config.json")
+
+ Public Class ConfigData
+ Public Property LanguageCode As String = "en-US"
+ End Class
+
+ Public Shared Sub SaveLanguage(langCode As String)
+ Try
+ Dim data As New ConfigData With {.LanguageCode = langCode}
+ Dim jsonString = JsonSerializer.Serialize(data)
+ File.WriteAllText(ConfigPath, jsonString)
+ Catch ex As Exception
+ ' Ignore errors
+ End Try
+ End Sub
+
+ Public Shared Function GetLanguage() As String
+ Try
+ If File.Exists(ConfigPath) Then
+ Dim jsonString = File.ReadAllText(ConfigPath)
+ Dim data = JsonSerializer.Deserialize(Of ConfigData)(jsonString)
+ Return If(data IsNot Nothing AndAlso Not String.IsNullOrEmpty(data.LanguageCode), data.LanguageCode, "en-US")
+ End If
+ Catch ex As Exception
+ ' Ignore errors
+ End Try
+ Return "en-US"
+ End Function
+End Class
diff --git a/CompactGUI/MainWindow.xaml.vb b/CompactGUI/MainWindow.xaml.vb
index 185b3d0..2629477 100644
--- a/CompactGUI/MainWindow.xaml.vb
+++ b/CompactGUI/MainWindow.xaml.vb
@@ -15,6 +15,7 @@ Class MainWindow : Implements INavigationWindow, INotifyPropertyChanged
' This call is required by the designer.
InitializeComponent()
+ TranslationHelper.StartAutoTranslate()
' Add any initialization after the InitializeComponent() call.
snackbarService.SetSnackbarPresenter(RootSnackbar)
diff --git a/CompactGUI/TranslationHelper.vb b/CompactGUI/TranslationHelper.vb
new file mode 100644
index 0000000..508ad4c
--- /dev/null
+++ b/CompactGUI/TranslationHelper.vb
@@ -0,0 +1,158 @@
+Imports System.IO
+Imports System.Reflection
+Imports System.Text.Json
+Imports System.Text.RegularExpressions
+Imports System.Windows
+Imports System.Windows.Controls
+Imports System.Windows.Documents
+Imports System.Windows.Media
+Imports System.Windows.Threading
+
+Public Class TranslationHelper
+
+ Private Shared _isInitialized As Boolean = False
+ Public Shared Translations As New Dictionary(Of String, String)
+
+ Public Shared Sub StartAutoTranslate()
+ If _isInitialized Then Return
+ _isInitialized = True
+
+ ' Check configured language
+ Dim currentLang = LanguageConfig.GetLanguage()
+
+ ' Only proceed if language is NOT en-US (default)
+ If currentLang <> "en-US" Then
+ ' Try to load language file from i18n folder
+ Dim langFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "i18n", $"{currentLang}.json")
+ If File.Exists(langFile) Then
+ LoadLanguageFile(langFile)
+
+ ' Register global loaded events ONLY if translation is enabled
+ EventManager.RegisterClassHandler(GetType(FrameworkElement), FrameworkElement.LoadedEvent, New RoutedEventHandler(AddressOf OnElementLoaded))
+ EventManager.RegisterClassHandler(GetType(FrameworkContentElement), FrameworkContentElement.LoadedEvent, New RoutedEventHandler(AddressOf OnElementLoaded))
+ End If
+ End If
+ End Sub
+
+ Public Shared Sub LoadLanguageFile(filePath As String)
+ Try
+ Dim jsonContent = File.ReadAllText(filePath)
+ Dim newTranslations = JsonSerializer.Deserialize(Of Dictionary(Of String, String))(jsonContent)
+ If newTranslations IsNot Nothing Then
+ Translations = newTranslations
+ End If
+ Catch ex As Exception
+ System.Diagnostics.Debug.WriteLine($"Failed to load language file: {ex.Message}")
+ End Try
+ End Sub
+
+ ' Empty stub for compatibility
+ Public Shared Sub TranslateWindow(obj As DependencyObject)
+ End Sub
+
+ Private Shared Sub OnElementLoaded(sender As Object, e As RoutedEventArgs)
+ Dim element As DependencyObject = TryCast(sender, DependencyObject)
+ If element Is Nothing Then Return
+
+ ' Use ContextIdle priority to ensure the visual tree is populated and properties are set
+ If TypeOf element Is DispatcherObject Then
+ DirectCast(element, DispatcherObject).Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, Sub()
+ Try
+ RecursiveTranslate(element)
+ Catch ex As Exception
+ ' Ignore errors during recursive translation
+ End Try
+ End Sub)
+ End If
+ End Sub
+
+ ' Text normalization: remove newlines, tabs, and merge spaces
+ Private Shared Function NormalizeText(input As String) As String
+ If String.IsNullOrEmpty(input) Then Return ""
+ Dim normalized As String = Regex.Replace(input, "\s+", " ")
+ Return normalized.Trim()
+ End Function
+
+ ' Core translation logic with Exact and Partial matching
+ Private Shared Sub TryReplace(original As String, applyAction As Action(Of String))
+ If String.IsNullOrWhiteSpace(original) Then Return
+
+ Dim normalizedText As String = NormalizeText(original)
+ Dim found As Boolean = False
+
+ ' 1. Exact Match (Priority)
+ If Translations.ContainsKey(normalizedText) Then
+ applyAction(Translations(normalizedText))
+ found = True
+ Else
+ ' 2. Partial / Fuzzy Match (for dynamic content like "6.52 GB saved")
+ For Each kvp In Translations
+ ' Only attempt match if the key is meaningful (length > 1) to avoid false positives
+ If kvp.Key.Length > 1 AndAlso normalizedText.Contains(kvp.Key) Then
+ Dim translated As String = normalizedText.Replace(kvp.Key, kvp.Value)
+
+ ' Only apply if replacement actually happened
+ If translated <> normalizedText Then
+ applyAction(translated)
+ found = True
+ Exit For ' Apply the first matching translation found
+ End If
+ End If
+ Next
+ End If
+
+ ' Debug log
+ ' System.Diagnostics.Debug.WriteLine("Scanning: [" & normalizedText & "] -> " & If(found, "Translated", "Unmatched"))
+ End Sub
+
+ ' Recursive Reflection Translation
+ Private Shared Sub RecursiveTranslate(element As Object)
+ If element Is Nothing Then Return
+
+ ' 1. Reflection scan for common text properties
+ Dim targetProperties As String() = {"Text", "Content", "Header", "Title", "Description", "Label", "ToolTip", "PlaceholderText"}
+ Dim type As Type = element.GetType()
+
+ For Each propName In targetProperties
+ Dim prop = type.GetProperty(propName)
+ If prop IsNot Nothing AndAlso prop.CanRead AndAlso prop.CanWrite Then
+ Try
+ Dim val = prop.GetValue(element)
+ ' If property is String -> Try translate
+ If TypeOf val Is String Then
+ TryReplace(CStr(val), Sub(newVal) prop.SetValue(element, newVal))
+ ' If property is Object (e.g. StackPanel inside Content) -> Recurse
+ ElseIf val IsNot Nothing AndAlso Not TypeOf val Is ValueType Then
+ RecursiveTranslate(val)
+ End If
+ Catch ex As Exception
+ End Try
+ End If
+ Next
+
+ ' 2. Special handling for TextBlock Inlines (Run elements)
+ If TypeOf element Is TextBlock Then
+ Dim tb = DirectCast(element, TextBlock)
+ For Each inline In tb.Inlines
+ If TypeOf inline Is Run Then
+ RecursiveTranslate(inline)
+ End If
+ Next
+ End If
+
+ ' 3. Deep traversal of Visual Tree children
+ If TypeOf element Is DependencyObject Then
+ Dim depObj = DirectCast(element, DependencyObject)
+ ' Only traverse Visual or Visual3D to avoid issues with logical-only elements
+ If TypeOf depObj Is Visual OrElse TypeOf depObj Is System.Windows.Media.Media3D.Visual3D Then
+ Dim childCount = VisualTreeHelper.GetChildrenCount(depObj)
+ For i = 0 To childCount - 1
+ Dim child = VisualTreeHelper.GetChild(depObj, i)
+ RecursiveTranslate(child)
+ Next
+ End If
+ End If
+
+ End Sub
+
+End Class
\ No newline at end of file
diff --git a/CompactGUI/i18n/de-DE.json b/CompactGUI/i18n/de-DE.json
new file mode 100644
index 0000000..7fdeb90
--- /dev/null
+++ b/CompactGUI/i18n/de-DE.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Startseite",
+ "Watcher": "Überwachung",
+ "Compression DB": "Komprimierungs-DB",
+ "Admin": "Admin",
+ "Open": "Öffnen",
+ "Exit": "Beenden",
+ "Settings": "Einstellungen",
+ "Filetype Management": "Dateityp-Verwaltung",
+ "Manage local skipped filetypes": "Lokale übersprungene Dateitypen verwalten",
+ "edit": "Bearbeiten",
+ "Agression of online skiplist": "Aggressivität der Online-Skiplist",
+ "(?)": "(?)",
+ "low": "Niedrig",
+ "medium": "Mittel",
+ "high": "Hoch",
+ "System Integration": "Systemintegration",
+ "Add to right-click context menu": "Zum Kontextmenü hinzufügen",
+ "Add to start menu": "Zum Startmenü hinzufügen",
+ "Show notification on completion": "Benachrichtigung bei Abschluss anzeigen",
+ "Start CompactGUI in system tray": "CompactGUI im System-Tray starten",
+ "Compression Settings": "Komprimierungseinstellungen",
+ "Maximum Compression Threads": "Maximale Komprimierungs-Threads",
+ "HDDs only use 1 thread": "HDDs nutzen nur 1 Thread",
+ "Estimate Compression for non-Steam Folders (beta)": "Komprimierung für Nicht-Steam-Ordner schätzen (Beta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analysiert Dateien schnell und schätzt deren Komprimierungsrate, ohne auf die Festplatte zu schreiben. Dies wird auf HDDs wahrscheinlich sehr langsam sein!",
+ "Background Watcher Settings": "Hintergrundüberwachung",
+ "Monitor compressed folders for changes": "Komprimierte Ordner auf Änderungen überwachen",
+ "Compress folders:": "Ordner komprimieren:",
+ "Never": "Nie",
+ "When System is Idle": "Wenn System im Leerlauf",
+ "On Schedule": "Nach Zeitplan",
+ "On Schedule if system is also idle": "Nach Zeitplan (nur im Leerlauf)",
+ "every": "Alle",
+ "day(s)": "Tag(e)",
+ "at": "um",
+ "Last ran:": "Zuletzt ausgeführt:",
+ "Next scheduled:": "Nächste Ausführung:",
+ "Update Settings": "Update-Einstellungen",
+ "Check for pre-release updates": "Auf Vorab-Versionen prüfen",
+ "UI Settings": "UI-Einstellungen",
+ "Always show details on Compression Mode buttons": "Details auf Komprimierungsmodus-Buttons immer anzeigen",
+ "Database Results": "Datenbank-Ergebnisse",
+ "Last Fetched:": "Zuletzt abgerufen:",
+ "Games": "Spiele",
+ "Search by game name or SteamID...": "Nach Spielname oder SteamID suchen...",
+ "Sort By": "Sortieren nach",
+ "Game Name": "Spielname",
+ "Ascending": "Aufsteigend",
+ "Descending": "Absteigend",
+ "SteamID": "SteamID",
+ "Max Savings": "Max. Ersparnis",
+ "SteamID:": "SteamID:",
+ "MODE": "MODUS",
+ "BEFORE": "VORHER",
+ "AFTER": "NACHHER",
+ "SAVINGS": "ERSPARNIS",
+ "TOTAL RESULTS": "GESAMTERGEBNISSE",
+ "UNCOMPRESSABLE FILETYPES": "NICHT KOMPRIMIERBARE DATEITYPEN",
+ "uncompressed size": "Unkomprimierte Größe",
+ "contained files": "Enthaltene Dateien",
+ "Compress Selected": "Auswahl komprimieren",
+ "select a folder": "Ordner auswählen",
+ "Version": "Version",
+ "Add Folder to Queue": "Ordner zur Warteschlange hinzufügen",
+ "Compression Mode": "Komprimierungsmodus",
+ "Configuration": "Konfiguration",
+ "Skip file types specified in settings": "In Einstellungen definierte Dateitypen überspringen",
+ "files will be skipped": "Dateien werden übersprungen",
+ "Skip file types likely to compress poorly": "Dateitypen mit voraussichtlich schlechter Komprimierung überspringen",
+ "Watch folder for changes": "Ordner auf Änderungen überwachen",
+ "Apply to all": "Auf alle anwenden",
+ "For Steam Games:": "Für Steam-Spiele:",
+ "estimate is based on database results": "Schätzung basiert auf Datenbankergebnissen",
+ "For Non-Steam Folders:": "Für Nicht-Steam-Ordner:",
+ "estimate is calculated by block analysis.": "Schätzung wird durch Blockanalyse berechnet.",
+ "If estimation is disabled, this will always show 0%": "Wenn die Schätzung deaktiviert ist, wird hier immer 0% angezeigt",
+ "skips files based on database results": "Überspringt Dateien basierend auf Datenbankergebnissen",
+ "skips files based on compression estimate": "Überspringt Dateien basierend auf Komprimierungsschätzung",
+ "Compression Summary": "Komprimierungszusammenfassung",
+ "Before": "Vorher",
+ "After": "Nachher",
+ "Space Saved": "Platz gespart",
+ "Files Compressed": "Dateien komprimiert",
+ "Uncompress": "Dekomprimieren",
+ "Compress Again": "Erneut komprimieren",
+ "Submit Results": "Ergebnisse senden",
+ "Estimated size": "Geschätzte Größe",
+ "Savings": "Ersparnis",
+ "unknown": "Unbekannt",
+ "Watched Folders": "Überwachte Ordner",
+ "Add": "Hinzufügen",
+ "Add a custom folder to the watchlist": "Benutzerdefinierten Ordner zur Watchlist hinzufügen",
+ "saved": "gespart",
+ "Last analysed": "Zuletzt analysiert",
+ "Re-analyse all watched folders": "Alle überwachten Ordner neu analysieren",
+ "Cancel Background Compressor": "Hintergrundkomprimierung abbrechen",
+ "Compress All Now": "Jetzt alle komprimieren",
+ "last compressed:": "Zuletzt komprimiert:",
+ "last modified:": "Zuletzt geändert:",
+ "% decayed": "% verfallen",
+ "Remove from Watchlist": "Von Watchlist entfernen",
+ "Add to compression queue": "Zur Komprimierungswarteschlange hinzufügen",
+ "Re-analyse this folder": "Diesen Ordner neu analysieren",
+ "Not Compressed": "Nicht komprimiert",
+ "Compressed": "Komprimiert",
+ "Compress Folder": "Ordner komprimieren",
+ "Invalid Folder": "Ungültiger Ordner",
+ "OK": "OK",
+ "Unknown": "Unbekannt",
+ "days ago": "Tage her",
+ "hours ago": "Stunden her",
+ "minutes ago": "Minuten her",
+ "just now": "Gerade eben",
+ "Awaiting Compression": "Warte auf Komprimierung",
+ "Analysing": "Analysieren",
+ "Working": "Arbeiten",
+ "Scheduled Compression Running": "Geplante Komprimierung läuft",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI führt eine geplante Aufgabe aus und komprimiert überwachte Ordner im Hintergrund",
+ "Scheduled Compression Completed": "Geplante Komprimierung abgeschlossen",
+ "Next scheduled task is on": "Nächste geplante Aufgabe am:",
+ "Restart as Admin": "Als Admin neu starten",
+ "Insufficient permission to access this folder.": "Unzureichende Berechtigung für Zugriff auf diesen Ordner.",
+ "Click to download": "Zum Herunterladen klicken",
+ "Update Available": "Update verfügbar",
+ "Failed to submit to wiki": "Senden an Wiki fehlgeschlagen",
+ "Please check your internet connection and try again": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut",
+ "Submitted to wiki": "An Wiki gesendet",
+ "Applied to all folders": "Auf alle Ordner angewendet",
+ "Compression options have been applied to all folders": "Komprimierungsoptionen wurden auf alle Ordner angewendet",
+ "Cannot remove folder": "Ordner kann nicht entfernt werden",
+ "Please wait until the current operation is finished": "Bitte warten Sie, bis der aktuelle Vorgang abgeschlossen ist",
+ "Success": "Erfolg",
+ "Added to Queue": "Zur Warteschlange hinzugefügt",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Dieses Spiel verwendet DirectStorage-Technologie. Wenn Sie diese Funktion nutzen, sollten Sie dieses Spiel nicht komprimieren.",
+ "You currently have": "Sie haben derzeit",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "Ordner, die überwacht werden. Das Schließen von CompactGUI beendet die Überwachung.",
+ "Are you sure you want to exit?": "Sind Sie sicher, dass Sie beenden möchten?",
+ "View on GitHub": "Auf GitHub ansehen",
+ "Buy me a coffee": "Spendieren Sie mir einen Kaffee",
+ "GB saved": "GB gespart",
+ "MB saved": "MB gespart",
+ "files being watched": "Dateien werden überwacht",
+ "Closing CompactGUI will stop them from being monitored.": "Das Schließen von CompactGUI beendet die Überwachung."
+}
diff --git a/CompactGUI/i18n/es-ES.json b/CompactGUI/i18n/es-ES.json
new file mode 100644
index 0000000..0496734
--- /dev/null
+++ b/CompactGUI/i18n/es-ES.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Inicio",
+ "Watcher": "Monitor",
+ "Compression DB": "BD Compresión",
+ "Admin": "Admin",
+ "Open": "Abrir",
+ "Exit": "Salir",
+ "Settings": "Ajustes",
+ "Filetype Management": "Gestión de tipos de archivo",
+ "Manage local skipped filetypes": "Gestionar tipos de archivo omitidos locales",
+ "edit": "editar",
+ "Agression of online skiplist": "Agresividad de la lista de omisión online",
+ "(?)": "(?)",
+ "low": "baja",
+ "medium": "media",
+ "high": "alta",
+ "System Integration": "Integración del sistema",
+ "Add to right-click context menu": "Añadir al menú contextual",
+ "Add to start menu": "Añadir al menú inicio",
+ "Show notification on completion": "Mostrar notificación al finalizar",
+ "Start CompactGUI in system tray": "Iniciar CompactGUI en la bandeja del sistema",
+ "Compression Settings": "Ajustes de compresión",
+ "Maximum Compression Threads": "Hilos máximos de compresión",
+ "HDDs only use 1 thread": "Los HDD usan solo 1 hilo",
+ "Estimate Compression for non-Steam Folders (beta)": "Estimar compresión para carpetas no-Steam (beta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analiza rápidamente los archivos y estima su tasa de compresión sin escribir en el disco. ¡Esto probablemente será muy lento en HDDs!",
+ "Background Watcher Settings": "Ajustes del monitor en segundo plano",
+ "Monitor compressed folders for changes": "Monitorizar cambios en carpetas comprimidas",
+ "Compress folders:": "Comprimir carpetas:",
+ "Never": "Nunca",
+ "When System is Idle": "Cuando el sistema esté inactivo",
+ "On Schedule": "Programado",
+ "On Schedule if system is also idle": "Programado (si el sistema está inactivo)",
+ "every": "cada",
+ "day(s)": "día(s)",
+ "at": "a las",
+ "Last ran:": "Última ejecución:",
+ "Next scheduled:": "Próxima programada:",
+ "Update Settings": "Ajustes de actualización",
+ "Check for pre-release updates": "Buscar actualizaciones preliminares",
+ "UI Settings": "Ajustes de interfaz",
+ "Always show details on Compression Mode buttons": "Mostrar siempre detalles en botones de modo de compresión",
+ "Database Results": "Resultados de la base de datos",
+ "Last Fetched:": "Última obtención:",
+ "Games": "Juegos",
+ "Search by game name or SteamID...": "Buscar por nombre o SteamID...",
+ "Sort By": "Ordenar por",
+ "Game Name": "Nombre del juego",
+ "Ascending": "Ascendente",
+ "Descending": "Descendente",
+ "SteamID": "SteamID",
+ "Max Savings": "Ahorro máx.",
+ "SteamID:": "SteamID:",
+ "MODE": "MODO",
+ "BEFORE": "ANTES",
+ "AFTER": "DESPUÉS",
+ "SAVINGS": "AHORRO",
+ "TOTAL RESULTS": "RESULTADOS TOTALES",
+ "UNCOMPRESSABLE FILETYPES": "TIPOS DE ARCHIVO NO COMPRIMIBLES",
+ "uncompressed size": "tamaño sin comprimir",
+ "contained files": "archivos contenidos",
+ "Compress Selected": "Comprimir seleccionados",
+ "select a folder": "seleccionar carpeta",
+ "Version": "Versión",
+ "Add Folder to Queue": "Añadir carpeta a la cola",
+ "Compression Mode": "Modo de compresión",
+ "Configuration": "Configuración",
+ "Skip file types specified in settings": "Omitir tipos de archivo especificados en ajustes",
+ "files will be skipped": "archivos serán omitidos",
+ "Skip file types likely to compress poorly": "Omitir tipos de archivo difícilmente comprimibles",
+ "Watch folder for changes": "Monitorizar cambios en carpeta",
+ "Apply to all": "Aplicar a todo",
+ "For Steam Games:": "Para juegos de Steam:",
+ "estimate is based on database results": "la estimación se basa en resultados de la BD",
+ "For Non-Steam Folders:": "Para carpetas no-Steam:",
+ "estimate is calculated by block analysis.": "la estimación se calcula por análisis de bloques.",
+ "If estimation is disabled, this will always show 0%": "Si la estimación está desactivada, esto siempre mostrará 0%",
+ "skips files based on database results": "omite archivos basado en resultados de la BD",
+ "skips files based on compression estimate": "omite archivos basado en estimación de compresión",
+ "Compression Summary": "Resumen de compresión",
+ "Before": "Antes",
+ "After": "Después",
+ "Space Saved": "Espacio ahorrado",
+ "Files Compressed": "Archivos comprimidos",
+ "Uncompress": "Descomprimir",
+ "Compress Again": "Comprimir de nuevo",
+ "Submit Results": "Enviar resultados",
+ "Estimated size": "Tamaño estimado",
+ "Savings": "Ahorro",
+ "unknown": "desconocido",
+ "Watched Folders": "Carpetas monitorizadas",
+ "Add": "Añadir",
+ "Add a custom folder to the watchlist": "Añadir carpeta personalizada a la lista",
+ "saved": "ahorrado",
+ "Last analysed": "Último análisis",
+ "Re-analyse all watched folders": "Reanalizar todas las carpetas monitorizadas",
+ "Cancel Background Compressor": "Cancelar compresor en segundo plano",
+ "Compress All Now": "Comprimir todo ahora",
+ "last compressed:": "última compresión:",
+ "last modified:": "última modificación:",
+ "% decayed": "% degradado",
+ "Remove from Watchlist": "Eliminar de la lista",
+ "Add to compression queue": "Añadir a la cola de compresión",
+ "Re-analyse this folder": "Reanalizar esta carpeta",
+ "Not Compressed": "No comprimido",
+ "Compressed": "Comprimido",
+ "Compress Folder": "Comprimir carpeta",
+ "Invalid Folder": "Carpeta inválida",
+ "OK": "Aceptar",
+ "Unknown": "Desconocido",
+ "days ago": "hace días",
+ "hours ago": "hace horas",
+ "minutes ago": "hace minutos",
+ "just now": "ahora mismo",
+ "Awaiting Compression": "Esperando compresión",
+ "Analysing": "Analizando",
+ "Working": "Trabajando",
+ "Scheduled Compression Running": "Compresión programada en ejecución",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI está ejecutando una tarea programada y comprimirá las carpetas monitorizadas en segundo plano",
+ "Scheduled Compression Completed": "Compresión programada completada",
+ "Next scheduled task is on": "Siguiente tarea programada el:",
+ "Restart as Admin": "Reiniciar como Admin",
+ "Insufficient permission to access this folder.": "Permiso insuficiente para acceder a esta carpeta.",
+ "Click to download": "Clic para descargar",
+ "Update Available": "Actualización disponible",
+ "Failed to submit to wiki": "Fallo al enviar a la wiki",
+ "Please check your internet connection and try again": "Por favor verifique su conexión a internet e intente de nuevo",
+ "Submitted to wiki": "Enviado a la wiki",
+ "Applied to all folders": "Aplicado a todas las carpetas",
+ "Compression options have been applied to all folders": "Las opciones de compresión se han aplicado a todas las carpetas",
+ "Cannot remove folder": "No se puede eliminar la carpeta",
+ "Please wait until the current operation is finished": "Por favor espere hasta que la operación actual termine",
+ "Success": "Éxito",
+ "Added to Queue": "Añadido a la cola",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Este juego usa tecnología DirectStorage. Si usa esta función, no debería comprimir este juego.",
+ "You currently have": "Actualmente tiene",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "carpetas siendo monitorizadas. Cerrar CompactGUI detendrá su monitorización.",
+ "Are you sure you want to exit?": "¿Está seguro de que desea salir?",
+ "View on GitHub": "Ver en GitHub",
+ "Buy me a coffee": "Cómprame un café",
+ "GB saved": "GB ahorrados",
+ "MB saved": "MB ahorrados",
+ "files being watched": "archivos monitorizados",
+ "Closing CompactGUI will stop them from being monitored.": "Cerrar CompactGUI detendrá la monitorización."
+}
diff --git a/CompactGUI/i18n/fr-FR.json b/CompactGUI/i18n/fr-FR.json
new file mode 100644
index 0000000..9a5c66e
--- /dev/null
+++ b/CompactGUI/i18n/fr-FR.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Accueil",
+ "Watcher": "Surveillance",
+ "Compression DB": "BDD Compression",
+ "Admin": "Admin",
+ "Open": "Ouvrir",
+ "Exit": "Quitter",
+ "Settings": "Paramètres",
+ "Filetype Management": "Gestion types de fichiers",
+ "Manage local skipped filetypes": "Gérer les types de fichiers ignorés localement",
+ "edit": "éditer",
+ "Agression of online skiplist": "Agressivité de la liste d'exclusion en ligne",
+ "(?)": "(?)",
+ "low": "faible",
+ "medium": "moyen",
+ "high": "élevé",
+ "System Integration": "Intégration système",
+ "Add to right-click context menu": "Ajouter au menu contextuel (clic droit)",
+ "Add to start menu": "Ajouter au menu Démarrer",
+ "Show notification on completion": "Afficher une notification à la fin",
+ "Start CompactGUI in system tray": "Démarrer CompactGUI dans la barre d'état",
+ "Compression Settings": "Paramètres de compression",
+ "Maximum Compression Threads": "Threads de compression maximum",
+ "HDDs only use 1 thread": "Les disques durs (HDD) n'utilisent qu'un thread",
+ "Estimate Compression for non-Steam Folders (beta)": "Estimer la compression pour les dossiers non-Steam (bêta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analyse rapidement les fichiers et estime leur taux de compression sans écrire sur le disque. Cela sera probablement très lent sur les disques durs !",
+ "Background Watcher Settings": "Paramètres de surveillance en arrière-plan",
+ "Monitor compressed folders for changes": "Surveiller les modifications des dossiers compressés",
+ "Compress folders:": "Compresser les dossiers :",
+ "Never": "Jamais",
+ "When System is Idle": "Quand le système est inactif",
+ "On Schedule": "Planifié",
+ "On Schedule if system is also idle": "Planifié (si système inactif)",
+ "every": "tous les",
+ "day(s)": "jour(s)",
+ "at": "à",
+ "Last ran:": "Dernière exécution :",
+ "Next scheduled:": "Prochaine planification :",
+ "Update Settings": "Paramètres de mise à jour",
+ "Check for pre-release updates": "Vérifier les mises à jour pré-release",
+ "UI Settings": "Paramètres de l'interface",
+ "Always show details on Compression Mode buttons": "Toujours afficher les détails sur les boutons de mode de compression",
+ "Database Results": "Résultats de la base de données",
+ "Last Fetched:": "Dernière récupération :",
+ "Games": "Jeux",
+ "Search by game name or SteamID...": "Rechercher par nom de jeu ou SteamID...",
+ "Sort By": "Trier par",
+ "Game Name": "Nom du jeu",
+ "Ascending": "Croissant",
+ "Descending": "Décroissant",
+ "SteamID": "SteamID",
+ "Max Savings": "Économies max",
+ "SteamID:": "SteamID :",
+ "MODE": "MODE",
+ "BEFORE": "AVANT",
+ "AFTER": "APRÈS",
+ "SAVINGS": "ÉCONOMIES",
+ "TOTAL RESULTS": "RÉSULTATS TOTAUX",
+ "UNCOMPRESSABLE FILETYPES": "TYPES DE FICHIERS NON COMPRESSIBLES",
+ "uncompressed size": "taille non compressée",
+ "contained files": "fichiers contenus",
+ "Compress Selected": "Compresser la sélection",
+ "select a folder": "sélectionner un dossier",
+ "Version": "Version",
+ "Add Folder to Queue": "Ajouter le dossier à la file d'attente",
+ "Compression Mode": "Mode de compression",
+ "Configuration": "Configuration",
+ "Skip file types specified in settings": "Ignorer les types de fichiers spécifiés dans les paramètres",
+ "files will be skipped": "fichiers seront ignorés",
+ "Skip file types likely to compress poorly": "Ignorer les types de fichiers peu compressibles",
+ "Watch folder for changes": "Surveiller les modifications du dossier",
+ "Apply to all": "Appliquer à tous",
+ "For Steam Games:": "Pour les jeux Steam :",
+ "estimate is based on database results": "l'estimation est basée sur les résultats de la BDD",
+ "For Non-Steam Folders:": "Pour les dossiers non-Steam :",
+ "estimate is calculated by block analysis.": "l'estimation est calculée par analyse de blocs.",
+ "If estimation is disabled, this will always show 0%": "Si l'estimation est désactivée, ceci affichera toujours 0%",
+ "skips files based on database results": "ignore les fichiers basés sur les résultats de la BDD",
+ "skips files based on compression estimate": "ignore les fichiers basés sur l'estimation de compression",
+ "Compression Summary": "Résumé de la compression",
+ "Before": "Avant",
+ "After": "Après",
+ "Space Saved": "Espace économisé",
+ "Files Compressed": "Fichiers compressés",
+ "Uncompress": "Décompresser",
+ "Compress Again": "Compresser à nouveau",
+ "Submit Results": "Soumettre les résultats",
+ "Estimated size": "Taille estimée",
+ "Savings": "Économies",
+ "unknown": "inconnu",
+ "Watched Folders": "Dossiers surveillés",
+ "Add": "Ajouter",
+ "Add a custom folder to the watchlist": "Ajouter un dossier personnalisé à la liste de surveillance",
+ "saved": "économisé",
+ "Last analysed": "Dernière analyse",
+ "Re-analyse all watched folders": "Réanalyser tous les dossiers surveillés",
+ "Cancel Background Compressor": "Annuler la compression en arrière-plan",
+ "Compress All Now": "Tout compresser maintenant",
+ "last compressed:": "dernière compression :",
+ "last modified:": "dernière modification :",
+ "% decayed": "% dégradé",
+ "Remove from Watchlist": "Retirer de la liste de surveillance",
+ "Add to compression queue": "Ajouter à la file de compression",
+ "Re-analyse this folder": "Réanalyser ce dossier",
+ "Not Compressed": "Non compressé",
+ "Compressed": "Compressé",
+ "Compress Folder": "Compresser le dossier",
+ "Invalid Folder": "Dossier invalide",
+ "OK": "OK",
+ "Unknown": "Inconnu",
+ "days ago": "il y a des jours",
+ "hours ago": "il y a des heures",
+ "minutes ago": "il y a des minutes",
+ "just now": "à l'instant",
+ "Awaiting Compression": "En attente de compression",
+ "Analysing": "Analyse en cours",
+ "Working": "Traitement en cours",
+ "Scheduled Compression Running": "Compression planifiée en cours",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI exécute une tâche planifiée et compressera les dossiers surveillés en arrière-plan",
+ "Scheduled Compression Completed": "Compression planifiée terminée",
+ "Next scheduled task is on": "Prochaine tâche planifiée le :",
+ "Restart as Admin": "Redémarrer en tant qu'admin",
+ "Insufficient permission to access this folder.": "Permission insuffisante pour accéder à ce dossier.",
+ "Click to download": "Cliquer pour télécharger",
+ "Update Available": "Mise à jour disponible",
+ "Failed to submit to wiki": "Échec de la soumission au wiki",
+ "Please check your internet connection and try again": "Veuillez vérifier votre connexion internet et réessayer",
+ "Submitted to wiki": "Soumis au wiki",
+ "Applied to all folders": "Appliqué à tous les dossiers",
+ "Compression options have been applied to all folders": "Les options de compression ont été appliquées à tous les dossiers",
+ "Cannot remove folder": "Impossible de retirer le dossier",
+ "Please wait until the current operation is finished": "Veuillez attendre que l'opération en cours soit terminée",
+ "Success": "Succès",
+ "Added to Queue": "Ajouté à la file d'attente",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Ce jeu utilise la technologie DirectStorage. Si vous utilisez cette fonctionnalité, vous ne devriez pas compresser ce jeu.",
+ "You currently have": "Vous avez actuellement",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "dossiers surveillés. Fermer CompactGUI arrêtera leur surveillance.",
+ "Are you sure you want to exit?": "Êtes-vous sûr de vouloir quitter ?",
+ "View on GitHub": "Voir sur GitHub",
+ "Buy me a coffee": "M'offrir un café (Buy me a coffee)",
+ "GB saved": "Go économisés",
+ "MB saved": "Mo économisés",
+ "files being watched": "fichiers surveillés",
+ "Closing CompactGUI will stop them from being monitored.": "Fermer CompactGUI arrêtera leur surveillance."
+}
diff --git a/CompactGUI/i18n/ja-JP.json b/CompactGUI/i18n/ja-JP.json
new file mode 100644
index 0000000..235765f
--- /dev/null
+++ b/CompactGUI/i18n/ja-JP.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "ホーム",
+ "Watcher": "監視",
+ "Compression DB": "圧縮データベース",
+ "Admin": "管理者",
+ "Open": "開く",
+ "Exit": "終了",
+ "Settings": "設定",
+ "Filetype Management": "ファイルタイプ管理",
+ "Manage local skipped filetypes": "ローカルのスキップするファイルタイプを管理",
+ "edit": "編集",
+ "Agression of online skiplist": "オンラインスキップリストの強度",
+ "(?)": "(?)",
+ "low": "低",
+ "medium": "中",
+ "high": "高",
+ "System Integration": "システム統合",
+ "Add to right-click context menu": "右クリックメニューに追加",
+ "Add to start menu": "スタートメニューに追加",
+ "Show notification on completion": "完了時に通知を表示",
+ "Start CompactGUI in system tray": "システムトレイでCompactGUIを起動",
+ "Compression Settings": "圧縮設定",
+ "Maximum Compression Threads": "最大圧縮スレッド数",
+ "HDDs only use 1 thread": "HDDは1スレッドのみ使用",
+ "Estimate Compression for non-Steam Folders (beta)": "非Steamフォルダの圧縮率を推定 (ベータ)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "ファイルを高速に解析し、ディスクに書き込まずに圧縮率を推定します。HDDでは非常に遅くなる可能性があります!",
+ "Background Watcher Settings": "バックグラウンド監視設定",
+ "Monitor compressed folders for changes": "圧縮フォルダの変更を監視",
+ "Compress folders:": "フォルダを圧縮:",
+ "Never": "しない",
+ "When System is Idle": "システムアイドル時",
+ "On Schedule": "スケジュール",
+ "On Schedule if system is also idle": "スケジュール(システムアイドル時のみ)",
+ "every": "間隔",
+ "day(s)": "日",
+ "at": "時刻",
+ "Last ran:": "前回の実行:",
+ "Next scheduled:": "次回の予定:",
+ "Update Settings": "更新設定",
+ "Check for pre-release updates": "プレリリース更新を確認",
+ "UI Settings": "UI設定",
+ "Always show details on Compression Mode buttons": "圧縮モードボタンに詳細を常に表示",
+ "Database Results": "データベース結果",
+ "Last Fetched:": "最終取得:",
+ "Games": "ゲーム",
+ "Search by game name or SteamID...": "ゲーム名またはSteamIDで検索...",
+ "Sort By": "並べ替え",
+ "Game Name": "ゲーム名",
+ "Ascending": "昇順",
+ "Descending": "降順",
+ "SteamID": "SteamID",
+ "Max Savings": "最大削減量",
+ "SteamID:": "SteamID:",
+ "MODE": "モード",
+ "BEFORE": "圧縮前",
+ "AFTER": "圧縮後",
+ "SAVINGS": "削減率",
+ "TOTAL RESULTS": "合計結果",
+ "UNCOMPRESSABLE FILETYPES": "圧縮不可のファイルタイプ",
+ "uncompressed size": "未圧縮サイズ",
+ "contained files": "含まれるファイル",
+ "Compress Selected": "選択項目を圧縮",
+ "select a folder": "フォルダを選択",
+ "Version": "バージョン",
+ "Add Folder to Queue": "フォルダをキューに追加",
+ "Compression Mode": "圧縮モード",
+ "Configuration": "構成",
+ "Skip file types specified in settings": "設定で指定されたファイルタイプをスキップ",
+ "files will be skipped": "ファイルがスキップされます",
+ "Skip file types likely to compress poorly": "圧縮率が低い可能性のあるファイルタイプをスキップ",
+ "Watch folder for changes": "フォルダの変更を監視",
+ "Apply to all": "すべてに適用",
+ "For Steam Games:": "Steamゲームの場合:",
+ "estimate is based on database results": "推定はデータベースの結果に基づきます",
+ "For Non-Steam Folders:": "非Steamフォルダの場合:",
+ "estimate is calculated by block analysis.": "推定はブロック分析によって計算されます。",
+ "If estimation is disabled, this will always show 0%": "推定が無効な場合、常に0%と表示されます",
+ "skips files based on database results": "データベースの結果に基づいてファイルをスキップ",
+ "skips files based on compression estimate": "圧縮推定に基づいてファイルをスキップ",
+ "Compression Summary": "圧縮概要",
+ "Before": "圧縮前",
+ "After": "圧縮後",
+ "Space Saved": "節約された容量",
+ "Files Compressed": "圧縮されたファイル",
+ "Uncompress": "解凍",
+ "Compress Again": "再圧縮",
+ "Submit Results": "結果を送信",
+ "Estimated size": "推定サイズ",
+ "Savings": "削減",
+ "unknown": "不明",
+ "Watched Folders": "監視中のフォルダ",
+ "Add": "追加",
+ "Add a custom folder to the watchlist": "カスタムフォルダをウォッチリストに追加",
+ "saved": "節約",
+ "Last analysed": "最終分析",
+ "Re-analyse all watched folders": "すべての監視フォルダを再分析",
+ "Cancel Background Compressor": "バックグラウンド圧縮をキャンセル",
+ "Compress All Now": "今すぐすべて圧縮",
+ "last compressed:": "最終圧縮:",
+ "last modified:": "最終更新:",
+ "% decayed": "% 劣化",
+ "Remove from Watchlist": "ウォッチリストから削除",
+ "Add to compression queue": "圧縮キューに追加",
+ "Re-analyse this folder": "このフォルダを再分析",
+ "Not Compressed": "未圧縮",
+ "Compressed": "圧縮済み",
+ "Compress Folder": "フォルダを圧縮",
+ "Invalid Folder": "無効なフォルダ",
+ "OK": "OK",
+ "Unknown": "不明",
+ "days ago": "日前",
+ "hours ago": "時間前",
+ "minutes ago": "分前",
+ "just now": "たった今",
+ "Awaiting Compression": "圧縮待ち",
+ "Analysing": "分析中",
+ "Working": "処理中",
+ "Scheduled Compression Running": "スケジュール圧縮を実行中",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUIはスケジュールタスクを実行しており、バックグラウンドで監視フォルダを圧縮します",
+ "Scheduled Compression Completed": "スケジュール圧縮完了",
+ "Next scheduled task is on": "次回のスケジュールタスク:",
+ "Restart as Admin": "管理者として再起動",
+ "Insufficient permission to access this folder.": "このフォルダにアクセスする権限がありません。",
+ "Click to download": "クリックしてダウンロード",
+ "Update Available": "アップデート利用可能",
+ "Failed to submit to wiki": "Wikiへの送信に失敗しました",
+ "Please check your internet connection and try again": "インターネット接続を確認して再試行してください",
+ "Submitted to wiki": "Wikiに送信しました",
+ "Applied to all folders": "すべてのフォルダに適用しました",
+ "Compression options have been applied to all folders": "圧縮オプションがすべてのフォルダに適用されました",
+ "Cannot remove folder": "フォルダを削除できません",
+ "Please wait until the current operation is finished": "現在の操作が完了するまでお待ちください",
+ "Success": "成功",
+ "Added to Queue": "キューに追加しました",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "このゲームはDirectStorage技術を使用しています。この機能を使用している場合は、このゲームを圧縮しないでください。",
+ "You currently have": "現在",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "個のフォルダを監視中です。CompactGUIを閉じると、監視が停止します。",
+ "Are you sure you want to exit?": "終了してもよろしいですか?",
+ "View on GitHub": "GitHubで見る",
+ "Buy me a coffee": "寄付する (Buy me a coffee)",
+ "GB saved": "GB 節約",
+ "MB saved": "MB 節約",
+ "files being watched": "ファイル監視中",
+ "Closing CompactGUI will stop them from being monitored.": "CompactGUIを閉じると監視が停止します。"
+}
diff --git a/CompactGUI/i18n/ko-KR.json b/CompactGUI/i18n/ko-KR.json
new file mode 100644
index 0000000..b292844
--- /dev/null
+++ b/CompactGUI/i18n/ko-KR.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "홈",
+ "Watcher": "감시",
+ "Compression DB": "압축 DB",
+ "Admin": "관리자",
+ "Open": "열기",
+ "Exit": "종료",
+ "Settings": "설정",
+ "Filetype Management": "파일 형식 관리",
+ "Manage local skipped filetypes": "로컬 건너뛰기 파일 형식 관리",
+ "edit": "편집",
+ "Agression of online skiplist": "온라인 건너뛰기 목록 강도",
+ "(?)": "(?)",
+ "low": "낮음",
+ "medium": "중간",
+ "high": "높음",
+ "System Integration": "시스템 통합",
+ "Add to right-click context menu": "우클릭 메뉴에 추가",
+ "Add to start menu": "시작 메뉴에 추가",
+ "Show notification on completion": "완료 시 알림 표시",
+ "Start CompactGUI in system tray": "시스템 트레이에서 CompactGUI 시작",
+ "Compression Settings": "압축 설정",
+ "Maximum Compression Threads": "최대 압축 스레드",
+ "HDDs only use 1 thread": "HDD는 1개 스레드만 사용",
+ "Estimate Compression for non-Steam Folders (beta)": "비 Steam 폴더 압축률 예상 (베타)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "파일을 빠르게 분석하여 디스크에 쓰지 않고 압축률을 예상합니다. HDD에서는 매우 느릴 수 있습니다!",
+ "Background Watcher Settings": "백그라운드 감시 설정",
+ "Monitor compressed folders for changes": "압축된 폴더 변경 감시",
+ "Compress folders:": "폴더 압축:",
+ "Never": "안 함",
+ "When System is Idle": "시스템 유휴 시",
+ "On Schedule": "예약",
+ "On Schedule if system is also idle": "예약 (시스템 유휴 시)",
+ "every": "간격",
+ "day(s)": "일",
+ "at": "시간",
+ "Last ran:": "최근 실행:",
+ "Next scheduled:": "다음 예약:",
+ "Update Settings": "업데이트 설정",
+ "Check for pre-release updates": "사전 릴리스 업데이트 확인",
+ "UI Settings": "UI 설정",
+ "Always show details on Compression Mode buttons": "압축 모드 버튼에 항상 세부 정보 표시",
+ "Database Results": "데이터베이스 결과",
+ "Last Fetched:": "최근 가져옴:",
+ "Games": "게임",
+ "Search by game name or SteamID...": "게임 이름 또는 SteamID로 검색...",
+ "Sort By": "정렬",
+ "Game Name": "게임 이름",
+ "Ascending": "오름차순",
+ "Descending": "내림차순",
+ "SteamID": "SteamID",
+ "Max Savings": "최대 절약",
+ "SteamID:": "SteamID:",
+ "MODE": "모드",
+ "BEFORE": "압축 전",
+ "AFTER": "압축 후",
+ "SAVINGS": "절약",
+ "TOTAL RESULTS": "총 결과",
+ "UNCOMPRESSABLE FILETYPES": "압축 불가능한 파일 형식",
+ "uncompressed size": "압축되지 않은 크기",
+ "contained files": "포함된 파일",
+ "Compress Selected": "선택 항목 압축",
+ "select a folder": "폴더 선택",
+ "Version": "버전",
+ "Add Folder to Queue": "대기열에 폴더 추가",
+ "Compression Mode": "압축 모드",
+ "Configuration": "구성",
+ "Skip file types specified in settings": "설정된 파일 형식 건너뛰기",
+ "files will be skipped": "개 파일이 건너뛰어집니다",
+ "Skip file types likely to compress poorly": "압축 효율이 낮은 파일 형식 건너뛰기",
+ "Watch folder for changes": "폴더 변경 감시",
+ "Apply to all": "모두 적용",
+ "For Steam Games:": "Steam 게임:",
+ "estimate is based on database results": "예상치는 데이터베이스 결과를 기반으로 합니다",
+ "For Non-Steam Folders:": "비 Steam 폴더:",
+ "estimate is calculated by block analysis.": "예상치는 블록 분석으로 계산됩니다.",
+ "If estimation is disabled, this will always show 0%": "예상이 비활성화되면 항상 0%로 표시됩니다",
+ "skips files based on database results": "데이터베이스 결과에 따라 파일 건너뛰기",
+ "skips files based on compression estimate": "압축 예상치에 따라 파일 건너뛰기",
+ "Compression Summary": "압축 요약",
+ "Before": "압축 전",
+ "After": "압축 후",
+ "Space Saved": "절약된 공간",
+ "Files Compressed": "압축된 파일",
+ "Uncompress": "압축 해제",
+ "Compress Again": "다시 압축",
+ "Submit Results": "결과 제출",
+ "Estimated size": "예상 크기",
+ "Savings": "절약",
+ "unknown": "알 수 없음",
+ "Watched Folders": "감시 중인 폴더",
+ "Add": "추가",
+ "Add a custom folder to the watchlist": "감시 목록에 사용자 지정 폴더 추가",
+ "saved": "절약됨",
+ "Last analysed": "최근 분석",
+ "Re-analyse all watched folders": "모든 감시 폴더 재분석",
+ "Cancel Background Compressor": "백그라운드 압축 취소",
+ "Compress All Now": "지금 모두 압축",
+ "last compressed:": "최근 압축:",
+ "last modified:": "최근 수정:",
+ "% decayed": "% 감소됨",
+ "Remove from Watchlist": "감시 목록에서 제거",
+ "Add to compression queue": "압축 대기열에 추가",
+ "Re-analyse this folder": "이 폴더 재분석",
+ "Not Compressed": "압축되지 않음",
+ "Compressed": "압축됨",
+ "Compress Folder": "폴더 압축",
+ "Invalid Folder": "유효하지 않은 폴더",
+ "OK": "확인",
+ "Unknown": "알 수 없음",
+ "days ago": "일 전",
+ "hours ago": "시간 전",
+ "minutes ago": "분 전",
+ "just now": "방금",
+ "Awaiting Compression": "압축 대기 중",
+ "Analysing": "분석 중",
+ "Working": "작업 중",
+ "Scheduled Compression Running": "예약된 압축 실행 중",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI가 예약된 작업을 실행 중이며 백그라운드에서 감시 폴더를 압축합니다",
+ "Scheduled Compression Completed": "예약된 압축 완료",
+ "Next scheduled task is on": "다음 예약 작업:",
+ "Restart as Admin": "관리자 권한으로 다시 시작",
+ "Insufficient permission to access this folder.": "이 폴더에 액세스할 권한이 부족합니다.",
+ "Click to download": "다운로드하려면 클릭",
+ "Update Available": "업데이트 가능",
+ "Failed to submit to wiki": "Wiki 제출 실패",
+ "Please check your internet connection and try again": "인터넷 연결을 확인하고 다시 시도해 주세요",
+ "Submitted to wiki": "Wiki에 제출됨",
+ "Applied to all folders": "모든 폴더에 적용됨",
+ "Compression options have been applied to all folders": "압축 옵션이 모든 폴더에 적용되었습니다",
+ "Cannot remove folder": "폴더를 제거할 수 없음",
+ "Please wait until the current operation is finished": "현재 작업이 완료될 때까지 기다려 주세요",
+ "Success": "성공",
+ "Added to Queue": "대기열에 추가됨",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "이 게임은 DirectStorage 기술을 사용합니다. 이 기능을 사용하는 경우 이 게임을 압축하지 마십시오.",
+ "You currently have": "현재",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "개의 폴더가 감시되고 있습니다. CompactGUI를 닫으면 감시가 중지됩니다.",
+ "Are you sure you want to exit?": "정말 종료하시겠습니까?",
+ "View on GitHub": "GitHub에서 보기",
+ "Buy me a coffee": "커피 한 잔 사주기 (후원)",
+ "GB saved": "GB 절약",
+ "MB saved": "MB 절약",
+ "files being watched": "개 파일 감시 중",
+ "Closing CompactGUI will stop them from being monitored.": "CompactGUI를 닫으면 감시가 중지됩니다."
+}
diff --git a/CompactGUI/i18n/ru-RU.json b/CompactGUI/i18n/ru-RU.json
new file mode 100644
index 0000000..27c947b
--- /dev/null
+++ b/CompactGUI/i18n/ru-RU.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Главная",
+ "Watcher": "Наблюдение",
+ "Compression DB": "БД сжатия",
+ "Admin": "Админ",
+ "Open": "Открыть",
+ "Exit": "Выход",
+ "Settings": "Настройки",
+ "Filetype Management": "Управление типами файлов",
+ "Manage local skipped filetypes": "Управление локальными пропускаемыми типами",
+ "edit": "изм.",
+ "Agression of online skiplist": "Агрессивность онлайн-списка пропуска",
+ "(?)": "(?)",
+ "low": "низкая",
+ "medium": "средняя",
+ "high": "высокая",
+ "System Integration": "Интеграция в систему",
+ "Add to right-click context menu": "Добавить в контекстное меню",
+ "Add to start menu": "Добавить в меню Пуск",
+ "Show notification on completion": "Уведомлять по завершении",
+ "Start CompactGUI in system tray": "Запускать CompactGUI в трее",
+ "Compression Settings": "Настройки сжатия",
+ "Maximum Compression Threads": "Макс. потоков сжатия",
+ "HDDs only use 1 thread": "HDD используют только 1 поток",
+ "Estimate Compression for non-Steam Folders (beta)": "Оценка сжатия для не-Steam папок (бета)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Быстро анализирует файлы и оценивает степень сжатия без записи на диск. На HDD это может сильно тормозить!",
+ "Background Watcher Settings": "Настройки фонового наблюдения",
+ "Monitor compressed folders for changes": "Следить за изменениями в сжатых папках",
+ "Compress folders:": "Сжимать папки:",
+ "Never": "Никогда",
+ "When System is Idle": "При простое системы",
+ "On Schedule": "По расписанию",
+ "On Schedule if system is also idle": "По расписанию (если простой)",
+ "every": "каждые",
+ "day(s)": "дн.",
+ "at": "в",
+ "Last ran:": "Последний запуск:",
+ "Next scheduled:": "Следующий запуск:",
+ "Update Settings": "Настройки обновлений",
+ "Check for pre-release updates": "Проверять пре-релизные обновления",
+ "UI Settings": "Настройки интерфейса",
+ "Always show details on Compression Mode buttons": "Всегда показывать детали на кнопках режимов сжатия",
+ "Database Results": "Результаты из базы",
+ "Last Fetched:": "Последнее обновление:",
+ "Games": "Игры",
+ "Search by game name or SteamID...": "Поиск по названию или SteamID...",
+ "Sort By": "Сортировать по",
+ "Game Name": "Название игры",
+ "Ascending": "По возрастанию",
+ "Descending": "По убыванию",
+ "SteamID": "SteamID",
+ "Max Savings": "Макс. экономия",
+ "SteamID:": "SteamID:",
+ "MODE": "РЕЖИМ",
+ "BEFORE": "ДО",
+ "AFTER": "ПОСЛЕ",
+ "SAVINGS": "ЭКОНОМИЯ",
+ "TOTAL RESULTS": "ВСЕГО РЕЗУЛЬТАТОВ",
+ "UNCOMPRESSABLE FILETYPES": "НЕСЖИМАЕМЫЕ ТИПЫ ФАЙЛОВ",
+ "uncompressed size": "размер без сжатия",
+ "contained files": "файлов внутри",
+ "Compress Selected": "Сжать выбранное",
+ "select a folder": "выберите папку",
+ "Version": "Версия",
+ "Add Folder to Queue": "Добавить папку в очередь",
+ "Compression Mode": "Режим сжатия",
+ "Configuration": "Конфигурация",
+ "Skip file types specified in settings": "Пропускать типы файлов из настроек",
+ "files will be skipped": "файлов будет пропущено",
+ "Skip file types likely to compress poorly": "Пропускать плохо сжимаемые файлы",
+ "Watch folder for changes": "Следить за изменениями папки",
+ "Apply to all": "Применить ко всем",
+ "For Steam Games:": "Для игр Steam:",
+ "estimate is based on database results": "оценка основана на базе данных",
+ "For Non-Steam Folders:": "Для не-Steam папок:",
+ "estimate is calculated by block analysis.": "оценка вычисляется поблочным анализом.",
+ "If estimation is disabled, this will always show 0%": "Если оценка отключена, здесь всегда будет 0%",
+ "skips files based on database results": "пропускает файлы на основе базы данных",
+ "skips files based on compression estimate": "пропускает файлы на основе оценки сжатия",
+ "Compression Summary": "Сводка сжатия",
+ "Before": "До",
+ "After": "После",
+ "Space Saved": "Места сэкономлено",
+ "Files Compressed": "Файлов сжато",
+ "Uncompress": "Распаковать",
+ "Compress Again": "Сжать снова",
+ "Submit Results": "Отправить результаты",
+ "Estimated size": "Расчетный размер",
+ "Savings": "Экономия",
+ "unknown": "неизвестно",
+ "Watched Folders": "Наблюдаемые папки",
+ "Add": "Добавить",
+ "Add a custom folder to the watchlist": "Добавить свою папку в список наблюдения",
+ "saved": "сэкономлено",
+ "Last analysed": "Последний анализ",
+ "Re-analyse all watched folders": "Переанализировать все папки",
+ "Cancel Background Compressor": "Отменить фоновое сжатие",
+ "Compress All Now": "Сжать всё сейчас",
+ "last compressed:": "последнее сжатие:",
+ "last modified:": "последнее изменение:",
+ "% decayed": "% устарело",
+ "Remove from Watchlist": "Удалить из списка",
+ "Add to compression queue": "Добавить в очередь сжатия",
+ "Re-analyse this folder": "Переанализировать эту папку",
+ "Not Compressed": "Не сжато",
+ "Compressed": "Сжато",
+ "Compress Folder": "Сжать папку",
+ "Invalid Folder": "Неверная папка",
+ "OK": "ОК",
+ "Unknown": "Неизвестно",
+ "days ago": "дн. назад",
+ "hours ago": "ч. назад",
+ "minutes ago": "мин. назад",
+ "just now": "только что",
+ "Awaiting Compression": "Ожидание сжатия",
+ "Analysing": "Анализ",
+ "Working": "Обработка",
+ "Scheduled Compression Running": "Запущено сжатие по расписанию",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI выполняет плановую задачу и сжимает наблюдаемые папки в фоне",
+ "Scheduled Compression Completed": "Плановое сжатие завершено",
+ "Next scheduled task is on": "Следующая задача:",
+ "Restart as Admin": "Перезапуск от Админа",
+ "Insufficient permission to access this folder.": "Недостаточно прав для доступа к папке.",
+ "Click to download": "Нажмите для скачивания",
+ "Update Available": "Доступно обновление",
+ "Failed to submit to wiki": "Не удалось отправить в вики",
+ "Please check your internet connection and try again": "Проверьте интернет и попробуйте снова",
+ "Submitted to wiki": "Отправлено в вики",
+ "Applied to all folders": "Применено ко всем папкам",
+ "Compression options have been applied to all folders": "Настройки сжатия применены ко всем папкам",
+ "Cannot remove folder": "Нельзя удалить папку",
+ "Please wait until the current operation is finished": "Пожалуйста, дождитесь завершения операции",
+ "Success": "Успех",
+ "Added to Queue": "Добавлено в очередь",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Эта игра использует DirectStorage. Если вы используете эту функцию, не сжимайте эту игру.",
+ "You currently have": "Сейчас у вас",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "папок под наблюдением. Закрытие CompactGUI остановит наблюдение.",
+ "Are you sure you want to exit?": "Вы уверены, что хотите выйти?",
+ "View on GitHub": "Открыть на GitHub",
+ "Buy me a coffee": "Купить мне кофе",
+ "GB saved": "ГБ сэкономлено",
+ "MB saved": "МБ сэкономлено",
+ "files being watched": "файлов наблюдается",
+ "Closing CompactGUI will stop them from being monitored.": "Закрытие CompactGUI остановит наблюдение."
+}
diff --git a/CompactGUI/i18n/zh-CN.json b/CompactGUI/i18n/zh-CN.json
new file mode 100644
index 0000000..6f92d2e
--- /dev/null
+++ b/CompactGUI/i18n/zh-CN.json
@@ -0,0 +1,146 @@
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "主页",
+ "Watcher": "监控",
+ "Compression DB": "压缩数据库",
+ "Admin": "管理员",
+ "Open": "打开",
+ "Exit": "退出",
+ "Settings": "设置",
+ "Filetype Management": "文件类型管理",
+ "Manage local skipped filetypes": "管理本地跳过的文件类型",
+ "edit": "编辑",
+ "Agression of online skiplist": "在线跳过列表的激进程度",
+ "(?)": "(?)",
+ "low": "低",
+ "medium": "中",
+ "high": "高",
+ "System Integration": "系统集成",
+ "Add to right-click context menu": "添加到右键菜单",
+ "Add to start menu": "添加到开始菜单",
+ "Show notification on completion": "完成后显示通知",
+ "Start CompactGUI in system tray": "在系统托盘启动 CompactGUI",
+ "Compression Settings": "压缩设置",
+ "Maximum Compression Threads": "最大压缩线程数",
+ "HDDs only use 1 thread": "HDD 仅使用 1 个线程",
+ "Estimate Compression for non-Steam Folders (beta)": "估算非 Steam 文件夹的压缩率 (测试版)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "快速解析文件并估算其压缩率,无需写入磁盘。这在 HDD 上可能会非常卡顿!",
+ "Background Watcher Settings": "后台监控设置",
+ "Monitor compressed folders for changes": "监控已压缩文件夹的更改",
+ "Compress folders:": "压缩文件夹:",
+ "Never": "从不",
+ "When System is Idle": "当系统空闲时",
+ "On Schedule": "按计划",
+ "On Schedule if system is also idle": "按计划且系统空闲时",
+ "every": "每",
+ "day(s)": "天",
+ "at": "在",
+ "Last ran:": "上次运行:",
+ "Next scheduled:": "下次计划:",
+ "Update Settings": "更新设置",
+ "Check for pre-release updates": "检查预发布更新",
+ "UI Settings": "界面设置",
+ "Always show details on Compression Mode buttons": "始终显示压缩模式按钮的详细信息",
+ "Database Results": "数据库结果",
+ "Last Fetched:": "上次获取:",
+ "Games": "游戏",
+ "Search by game name or SteamID...": "按游戏名称或 SteamID 搜索...",
+ "Sort By": "排序方式",
+ "Game Name": "游戏名称",
+ "Ascending": "升序",
+ "Descending": "降序",
+ "SteamID": "SteamID",
+ "Max Savings": "最大节省",
+ "SteamID:": "SteamID:",
+ "MODE": "模式",
+ "BEFORE": "压缩前",
+ "AFTER": "压缩后",
+ "SAVINGS": "节省",
+ "TOTAL RESULTS": "总结果",
+ "UNCOMPRESSABLE FILETYPES": "不可压缩的文件类型",
+ "uncompressed size": "未压缩大小",
+ "contained files": "包含文件",
+ "Compress Selected": "压缩选中项",
+ "select a folder": "选择文件夹",
+ "Version": "版本",
+ "Add Folder to Queue": "添加文件夹到队列",
+ "Compression Mode": "压缩模式",
+ "Configuration": "配置",
+ "Skip file types specified in settings": "跳过设置中指定的文件类型",
+ "files will be skipped": "个文件将被跳过",
+ "Skip file types likely to compress poorly": "跳过可能压缩效果不佳的文件类型",
+ "Watch folder for changes": "监控文件夹更改",
+ "Apply to all": "应用到所有",
+ "For Steam Games:": "对于 Steam 游戏:",
+ "estimate is based on database results": "估算是基于数据库结果",
+ "For Non-Steam Folders:": "对于非 Steam 文件夹:",
+ "estimate is calculated by block analysis.": "估算是通过块分析计算的。",
+ "If estimation is disabled, this will always show 0%": "如果禁用估算,这里将始终显示 0%",
+ "skips files based on database results": "根据数据库结果跳过文件",
+ "skips files based on compression estimate": "根据压缩估算跳过文件",
+ "Compression Summary": "压缩摘要",
+ "Before": "压缩前",
+ "After": "压缩后",
+ "Space Saved": "节省空间",
+ "Files Compressed": "文件已压缩",
+ "Uncompress": "解压缩",
+ "Compress Again": "再次压缩",
+ "Submit Results": "提交结果",
+ "Estimated size": "预估大小",
+ "Savings": "节省",
+ "unknown": "未知",
+ "Watched Folders": "受监控文件夹",
+ "Add": "添加",
+ "Add a custom folder to the watchlist": "添加自定义文件夹到监控列表",
+ "saved": "已节省",
+ "Last analysed": "上次分析",
+ "Re-analyse all watched folders": "重新分析所有受监控文件夹",
+ "Cancel Background Compressor": "取消后台压缩",
+ "Compress All Now": "立即全部压缩",
+ "last compressed:": "上次压缩:",
+ "last modified:": "上次修改:",
+ "% decayed": "% 已衰减",
+ "Remove from Watchlist": "从监控列表移除",
+ "Add to compression queue": "添加到压缩队列",
+ "Re-analyse this folder": "重新分析此文件夹",
+ "Not Compressed": "未压缩",
+ "Compressed": "已压缩",
+ "Compress Folder": "压缩文件夹",
+ "Invalid Folder": "无效文件夹",
+ "OK": "确定",
+ "Unknown": "未知",
+ "days ago": "天前",
+ "hours ago": "小时前",
+ "minutes ago": "分钟前",
+ "just now": "刚刚",
+ "Awaiting Compression": "等待压缩",
+ "Analysing": "正在分析",
+ "Working": "正在处理",
+ "Scheduled Compression Running": "计划任务正在运行",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI 正在运行计划任务,将在后台压缩受监控的文件夹",
+ "Scheduled Compression Completed": "计划压缩完成",
+ "Next scheduled task is on": "下次计划任务时间:",
+ "Restart as Admin": "以管理员身份重启",
+ "Insufficient permission to access this folder.": "没有权限访问此文件夹。",
+ "Click to download": "点击下载",
+ "Update Available": "有可用更新",
+ "Failed to submit to wiki": "提交到 Wiki 失败",
+ "Please check your internet connection and try again": "请检查您的网络连接并重试",
+ "Submitted to wiki": "已提交到 Wiki",
+ "Applied to all folders": "已应用到所有文件夹",
+ "Compression options have been applied to all folders": "压缩选项已应用到所有文件夹",
+ "Cannot remove folder": "无法移除文件夹",
+ "Please wait until the current operation is finished": "请等待当前操作完成",
+ "Success": "成功",
+ "Added to Queue": "已添加到队列",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "此游戏使用 DirectStorage 技术。如果您正在使用此功能,则不应压缩此游戏。",
+ "You currently have": "您当前有",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "个文件夹正在被监控。关闭 CompactGUI 将停止对它们的监控。",
+ "Are you sure you want to exit?": "确定要退出吗?",
+ "View on GitHub": "在 GitHub 查看",
+ "Buy me a coffee": "请我喝杯咖啡",
+ "GB saved": "GB 已节省",
+ "MB saved": "MB 已节省",
+ "files being watched": "个文件正在被监控",
+ "Closing CompactGUI will stop them from being monitored.": "关闭 CompactGUI 将停止监控这些文件。"
+}
From 9a2ab1e08fc8a20af398f43551ea5b063e1f69e3 Mon Sep 17 00:00:00 2001
From: Shadow <124238783+ShadowLoveElysia@users.noreply.github.com>
Date: Mon, 24 Nov 2025 03:02:48 +0800
Subject: [PATCH 2/5] Add multi-language support (i18n) via JSON config
---
CompactGUI/Views/SettingsPage.xaml | 55 +++++++++++----------------
CompactGUI/Views/SettingsPage.xaml.vb | 35 ++++++++++++++++-
2 files changed, 56 insertions(+), 34 deletions(-)
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index cf52af3..4c46df5 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -1,4 +1,4 @@
-
-
-
@@ -365,11 +337,11 @@
-
-
@@ -423,6 +395,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index 6524a37..c912722 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -1,4 +1,5 @@
-Public Class SettingsPage
+Public Class SettingsPage
+ Private _isInitialized As Boolean = False
Sub New(settingsviewmodel As SettingsViewModel)
@@ -10,9 +11,39 @@
ScrollViewer.SetCanContentScroll(Me, False)
+ ' Initialize Language Selection
+ Dim currentLang = LanguageConfig.GetLanguage()
+
+ For i As Integer = 0 To UiLanguageComboBox.Items.Count - 1
+ Dim item = CType(UiLanguageComboBox.Items(i), ComboBoxItem)
+ If item.Tag.ToString() = currentLang Then
+ UiLanguageComboBox.SelectedIndex = i
+ Exit For
+ End If
+ Next
+
+ ' Fallback to English if no match
+ If UiLanguageComboBox.SelectedIndex = -1 Then
+ UiLanguageComboBox.SelectedIndex = 0
+ End If
+
+ _isInitialized = True
+
End Sub
+ Private Sub UiLanguageComboBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
+ If Not _isInitialized Then Return
+ If UiLanguageComboBox.SelectedItem Is Nothing Then Return
+ Dim selectedItem = CType(UiLanguageComboBox.SelectedItem, ComboBoxItem)
+ Dim langCode = selectedItem.Tag.ToString()
+ ' Avoid triggering on initial load if it matches
+ Dim currentSaved = LanguageConfig.GetLanguage()
+ If langCode <> currentSaved Then
+ LanguageConfig.SaveLanguage(langCode)
+ MessageBox.Show("Language settings saved. Please restart CompactGUI to apply changes." & vbCrLf & "语言设置已保存,请重启软件以生效。", "CompactGUI", MessageBoxButton.OK, MessageBoxImage.Information)
+ End If
+ End Sub
-End Class
+End Class
\ No newline at end of file
From 1d4aa76374dc869a14f0f91450501de492b7c350 Mon Sep 17 00:00:00 2001
From: Shadow <124238783+ShadowLoveElysia@users.noreply.github.com>
Date: Mon, 24 Nov 2025 13:03:59 +0800
Subject: [PATCH 3/5] fix some bug
fix some bug
---
CompactGUI/i18n/de-DE.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/es-ES.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/fr-FR.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/ja-JP.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/ko-KR.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/ru-RU.json | 292 ++++++++++++++++++-------------------
CompactGUI/i18n/zh-CN.json | 292 ++++++++++++++++++-------------------
7 files changed, 1022 insertions(+), 1022 deletions(-)
diff --git a/CompactGUI/i18n/de-DE.json b/CompactGUI/i18n/de-DE.json
index 7fdeb90..8eb6733 100644
--- a/CompactGUI/i18n/de-DE.json
+++ b/CompactGUI/i18n/de-DE.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "Startseite",
- "Watcher": "Überwachung",
- "Compression DB": "Komprimierungs-DB",
- "Admin": "Admin",
- "Open": "Öffnen",
- "Exit": "Beenden",
- "Settings": "Einstellungen",
- "Filetype Management": "Dateityp-Verwaltung",
- "Manage local skipped filetypes": "Lokale übersprungene Dateitypen verwalten",
- "edit": "Bearbeiten",
- "Agression of online skiplist": "Aggressivität der Online-Skiplist",
- "(?)": "(?)",
- "low": "Niedrig",
- "medium": "Mittel",
- "high": "Hoch",
- "System Integration": "Systemintegration",
- "Add to right-click context menu": "Zum Kontextmenü hinzufügen",
- "Add to start menu": "Zum Startmenü hinzufügen",
- "Show notification on completion": "Benachrichtigung bei Abschluss anzeigen",
- "Start CompactGUI in system tray": "CompactGUI im System-Tray starten",
- "Compression Settings": "Komprimierungseinstellungen",
- "Maximum Compression Threads": "Maximale Komprimierungs-Threads",
- "HDDs only use 1 thread": "HDDs nutzen nur 1 Thread",
- "Estimate Compression for non-Steam Folders (beta)": "Komprimierung für Nicht-Steam-Ordner schätzen (Beta)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analysiert Dateien schnell und schätzt deren Komprimierungsrate, ohne auf die Festplatte zu schreiben. Dies wird auf HDDs wahrscheinlich sehr langsam sein!",
- "Background Watcher Settings": "Hintergrundüberwachung",
- "Monitor compressed folders for changes": "Komprimierte Ordner auf Änderungen überwachen",
- "Compress folders:": "Ordner komprimieren:",
- "Never": "Nie",
- "When System is Idle": "Wenn System im Leerlauf",
- "On Schedule": "Nach Zeitplan",
- "On Schedule if system is also idle": "Nach Zeitplan (nur im Leerlauf)",
- "every": "Alle",
- "day(s)": "Tag(e)",
- "at": "um",
- "Last ran:": "Zuletzt ausgeführt:",
- "Next scheduled:": "Nächste Ausführung:",
- "Update Settings": "Update-Einstellungen",
- "Check for pre-release updates": "Auf Vorab-Versionen prüfen",
- "UI Settings": "UI-Einstellungen",
- "Always show details on Compression Mode buttons": "Details auf Komprimierungsmodus-Buttons immer anzeigen",
- "Database Results": "Datenbank-Ergebnisse",
- "Last Fetched:": "Zuletzt abgerufen:",
- "Games": "Spiele",
- "Search by game name or SteamID...": "Nach Spielname oder SteamID suchen...",
- "Sort By": "Sortieren nach",
- "Game Name": "Spielname",
- "Ascending": "Aufsteigend",
- "Descending": "Absteigend",
- "SteamID": "SteamID",
- "Max Savings": "Max. Ersparnis",
- "SteamID:": "SteamID:",
- "MODE": "MODUS",
- "BEFORE": "VORHER",
- "AFTER": "NACHHER",
- "SAVINGS": "ERSPARNIS",
- "TOTAL RESULTS": "GESAMTERGEBNISSE",
- "UNCOMPRESSABLE FILETYPES": "NICHT KOMPRIMIERBARE DATEITYPEN",
- "uncompressed size": "Unkomprimierte Größe",
- "contained files": "Enthaltene Dateien",
- "Compress Selected": "Auswahl komprimieren",
- "select a folder": "Ordner auswählen",
- "Version": "Version",
- "Add Folder to Queue": "Ordner zur Warteschlange hinzufügen",
- "Compression Mode": "Komprimierungsmodus",
- "Configuration": "Konfiguration",
- "Skip file types specified in settings": "In Einstellungen definierte Dateitypen überspringen",
- "files will be skipped": "Dateien werden übersprungen",
- "Skip file types likely to compress poorly": "Dateitypen mit voraussichtlich schlechter Komprimierung überspringen",
- "Watch folder for changes": "Ordner auf Änderungen überwachen",
- "Apply to all": "Auf alle anwenden",
- "For Steam Games:": "Für Steam-Spiele:",
- "estimate is based on database results": "Schätzung basiert auf Datenbankergebnissen",
- "For Non-Steam Folders:": "Für Nicht-Steam-Ordner:",
- "estimate is calculated by block analysis.": "Schätzung wird durch Blockanalyse berechnet.",
- "If estimation is disabled, this will always show 0%": "Wenn die Schätzung deaktiviert ist, wird hier immer 0% angezeigt",
- "skips files based on database results": "Überspringt Dateien basierend auf Datenbankergebnissen",
- "skips files based on compression estimate": "Überspringt Dateien basierend auf Komprimierungsschätzung",
- "Compression Summary": "Komprimierungszusammenfassung",
- "Before": "Vorher",
- "After": "Nachher",
- "Space Saved": "Platz gespart",
- "Files Compressed": "Dateien komprimiert",
- "Uncompress": "Dekomprimieren",
- "Compress Again": "Erneut komprimieren",
- "Submit Results": "Ergebnisse senden",
- "Estimated size": "Geschätzte Größe",
- "Savings": "Ersparnis",
- "unknown": "Unbekannt",
- "Watched Folders": "Überwachte Ordner",
- "Add": "Hinzufügen",
- "Add a custom folder to the watchlist": "Benutzerdefinierten Ordner zur Watchlist hinzufügen",
- "saved": "gespart",
- "Last analysed": "Zuletzt analysiert",
- "Re-analyse all watched folders": "Alle überwachten Ordner neu analysieren",
- "Cancel Background Compressor": "Hintergrundkomprimierung abbrechen",
- "Compress All Now": "Jetzt alle komprimieren",
- "last compressed:": "Zuletzt komprimiert:",
- "last modified:": "Zuletzt geändert:",
- "% decayed": "% verfallen",
- "Remove from Watchlist": "Von Watchlist entfernen",
- "Add to compression queue": "Zur Komprimierungswarteschlange hinzufügen",
- "Re-analyse this folder": "Diesen Ordner neu analysieren",
- "Not Compressed": "Nicht komprimiert",
- "Compressed": "Komprimiert",
- "Compress Folder": "Ordner komprimieren",
- "Invalid Folder": "Ungültiger Ordner",
- "OK": "OK",
- "Unknown": "Unbekannt",
- "days ago": "Tage her",
- "hours ago": "Stunden her",
- "minutes ago": "Minuten her",
- "just now": "Gerade eben",
- "Awaiting Compression": "Warte auf Komprimierung",
- "Analysing": "Analysieren",
- "Working": "Arbeiten",
- "Scheduled Compression Running": "Geplante Komprimierung läuft",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI führt eine geplante Aufgabe aus und komprimiert überwachte Ordner im Hintergrund",
- "Scheduled Compression Completed": "Geplante Komprimierung abgeschlossen",
- "Next scheduled task is on": "Nächste geplante Aufgabe am:",
- "Restart as Admin": "Als Admin neu starten",
- "Insufficient permission to access this folder.": "Unzureichende Berechtigung für Zugriff auf diesen Ordner.",
- "Click to download": "Zum Herunterladen klicken",
- "Update Available": "Update verfügbar",
- "Failed to submit to wiki": "Senden an Wiki fehlgeschlagen",
- "Please check your internet connection and try again": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut",
- "Submitted to wiki": "An Wiki gesendet",
- "Applied to all folders": "Auf alle Ordner angewendet",
- "Compression options have been applied to all folders": "Komprimierungsoptionen wurden auf alle Ordner angewendet",
- "Cannot remove folder": "Ordner kann nicht entfernt werden",
- "Please wait until the current operation is finished": "Bitte warten Sie, bis der aktuelle Vorgang abgeschlossen ist",
- "Success": "Erfolg",
- "Added to Queue": "Zur Warteschlange hinzugefügt",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Dieses Spiel verwendet DirectStorage-Technologie. Wenn Sie diese Funktion nutzen, sollten Sie dieses Spiel nicht komprimieren.",
- "You currently have": "Sie haben derzeit",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "Ordner, die überwacht werden. Das Schließen von CompactGUI beendet die Überwachung.",
- "Are you sure you want to exit?": "Sind Sie sicher, dass Sie beenden möchten?",
- "View on GitHub": "Auf GitHub ansehen",
- "Buy me a coffee": "Spendieren Sie mir einen Kaffee",
- "GB saved": "GB gespart",
- "MB saved": "MB gespart",
- "files being watched": "Dateien werden überwacht",
- "Closing CompactGUI will stop them from being monitored.": "Das Schließen von CompactGUI beendet die Überwachung."
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Startseite",
+ "Watcher": "Überwachung",
+ "Compression DB": "Komprimierungs-DB",
+ "Admin": "Admin",
+ "Open": "Öffnen",
+ "Exit": "Beenden",
+ "Settings": "Einstellungen",
+ "Filetype Management": "Dateityp-Verwaltung",
+ "Manage local skipped filetypes": "Lokale übersprungene Dateitypen verwalten",
+ "edit": "Bearbeiten",
+ "Agression of online skiplist": "Aggressivität der Online-Skiplist",
+ "(?)": "(?)",
+ "medium": "Mittel",
+ "high": "Hoch",
+ "System Integration": "Systemintegration",
+ "Add to right-click context menu": "Zum Kontextmenü hinzufügen",
+ "Add to start menu": "Zum Startmenü hinzufügen",
+ "Show notification on completion": "Benachrichtigung bei Abschluss anzeigen",
+ "Start CompactGUI in system tray": "CompactGUI im System-Tray starten",
+ "Compression Settings": "Komprimierungseinstellungen",
+ "Maximum Compression Threads": "Maximale Komprimierungs-Threads",
+ "HDDs only use 1 thread": "HDDs nutzen nur 1 Thread",
+ "Estimate Compression for non-Steam Folders (beta)": "Komprimierung für Nicht-Steam-Ordner schätzen (Beta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analysiert Dateien schnell und schätzt deren Komprimierungsrate, ohne auf die Festplatte zu schreiben. Dies wird auf HDDs wahrscheinlich sehr langsam sein!",
+ "Background Watcher Settings": "Hintergrundüberwachung",
+ "Monitor compressed folders for changes": "Komprimierte Ordner auf Änderungen überwachen",
+ "Compress folders:": "Ordner komprimieren:",
+ "Never": "Nie",
+ "When System is Idle": "Wenn System im Leerlauf",
+ "On Schedule": "Nach Zeitplan",
+ "On Schedule if system is also idle": "Nach Zeitplan (nur im Leerlauf)",
+ "every": "Alle",
+ "day(s)": "Tag(e)",
+ "Last ran:": "Zuletzt ausgeführt:",
+ "Next scheduled:": "Nächste Ausführung:",
+ "Update Settings": "Update-Einstellungen",
+ "Check for pre-release updates": "Auf Vorab-Versionen prüfen",
+ "UI Settings": "UI-Einstellungen",
+ "Always show details on Compression Mode buttons": "Details auf Komprimierungsmodus-Buttons immer anzeigen",
+ "Database Results": "Datenbank-Ergebnisse",
+ "Last Fetched:": "Zuletzt abgerufen:",
+ "Games": "Spiele",
+ "Search by game name or SteamID...": "Nach Spielname oder SteamID suchen...",
+ "Sort By": "Sortieren nach",
+ "Game Name": "Spielname",
+ "Ascending": "Aufsteigend",
+ "Descending": "Absteigend",
+ "SteamID": "SteamID",
+ "Max Savings": "Max. Ersparnis",
+ "SteamID:": "SteamID:",
+ "MODE": "MODUS",
+ "BEFORE": "VORHER",
+ "AFTER": "NACHHER",
+ "SAVINGS": "ERSPARNIS",
+ "TOTAL RESULTS": "GESAMTERGEBNISSE",
+ "UNCOMPRESSABLE FILETYPES": "NICHT KOMPRIMIERBARE DATEITYPEN",
+ "uncompressed size": "Unkomprimierte Größe",
+ "contained files": "Enthaltene Dateien",
+ "Compress Selected": "Auswahl komprimieren",
+ "select a folder": "Ordner auswählen",
+ "Version": "Version",
+ "Add Folder to Queue": "Ordner zur Warteschlange hinzufügen",
+ "Compression Mode": "Komprimierungsmodus",
+ "Configuration": "Konfiguration",
+ "Skip file types specified in settings": "In Einstellungen definierte Dateitypen überspringen",
+ "files will be skipped": "Dateien werden übersprungen",
+ "Skip file types likely to compress poorly": "Dateitypen mit voraussichtlich schlechter Komprimierung überspringen",
+ "Watch folder for changes": "Ordner auf Änderungen überwachen",
+ "Apply to all": "Auf alle anwenden",
+ "For Steam Games:": "Für Steam-Spiele:",
+ "estimate is based on database results": "Schätzung basiert auf Datenbankergebnissen",
+ "For Non-Steam Folders:": "Für Nicht-Steam-Ordner:",
+ "estimate is calculated by block analysis.": "Schätzung wird durch Blockanalyse berechnet.",
+ "If estimation is disabled, this will always show 0%": "Wenn die Schätzung deaktiviert ist, wird hier immer 0% angezeigt",
+ "skips files based on database results": "Überspringt Dateien basierend auf Datenbankergebnissen",
+ "skips files based on compression estimate": "Überspringt Dateien basierend auf Komprimierungsschätzung",
+ "Compression Summary": "Komprimierungszusammenfassung",
+ "Before": "Vorher",
+ "After": "Nachher",
+ "Space Saved": "Platz gespart",
+ "Files Compressed": "Dateien komprimiert",
+ "Uncompress": "Dekomprimieren",
+ "Compress Again": "Erneut komprimieren",
+ "Submit Results": "Ergebnisse senden",
+ "Estimated size": "Geschätzte Größe",
+ "Savings": "Ersparnis",
+ "unknown": "Unbekannt",
+ "Watched Folders": "Überwachte Ordner",
+ "Add a custom folder to the watchlist": "Benutzerdefinierten Ordner zur Watchlist hinzufügen",
+ "saved": "gespart",
+ "Last analysed": "Zuletzt analysiert",
+ "Re-analyse all watched folders": "Alle überwachten Ordner neu analysieren",
+ "Cancel Background Compressor": "Hintergrundkomprimierung abbrechen",
+ "Compress All Now": "Jetzt alle komprimieren",
+ "last compressed:": "Zuletzt komprimiert:",
+ "last modified:": "Zuletzt geändert:",
+ "% decayed": "% verfallen",
+ "Remove from Watchlist": "Von Watchlist entfernen",
+ "Add to compression queue": "Zur Komprimierungswarteschlange hinzufügen",
+ "Re-analyse this folder": "Diesen Ordner neu analysieren",
+ "Not Compressed": "Nicht komprimiert",
+ "Compressed": "Komprimiert",
+ "Compress Folder": "Ordner komprimieren",
+ "Invalid Folder": "Ungültiger Ordner",
+ "OK": "OK",
+ "Unknown": "Unbekannt",
+ "days ago": "Tage her",
+ "hours ago": "Stunden her",
+ "minutes ago": "Minuten her",
+ "just now": "Gerade eben",
+ "Awaiting Compression": "Warte auf Komprimierung",
+ "Analysing": "Analysieren",
+ "Working": "Arbeiten",
+ "Scheduled Compression Running": "Geplante Komprimierung läuft",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI führt eine geplante Aufgabe aus und komprimiert überwachte Ordner im Hintergrund",
+ "Scheduled Compression Completed": "Geplante Komprimierung abgeschlossen",
+ "Next scheduled task is on": "Nächste geplante Aufgabe am:",
+ "Restart as Admin": "Als Admin neu starten",
+ "Insufficient permission to access this folder.": "Unzureichende Berechtigung für Zugriff auf diesen Ordner.",
+ "Click to download": "Zum Herunterladen klicken",
+ "Update Available": "Update verfügbar",
+ "Failed to submit to wiki": "Senden an Wiki fehlgeschlagen",
+ "Please check your internet connection and try again": "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut",
+ "Submitted to wiki": "An Wiki gesendet",
+ "Applied to all folders": "Auf alle Ordner angewendet",
+ "Compression options have been applied to all folders": "Komprimierungsoptionen wurden auf alle Ordner angewendet",
+ "Cannot remove folder": "Ordner kann nicht entfernt werden",
+ "Please wait until the current operation is finished": "Bitte warten Sie, bis der aktuelle Vorgang abgeschlossen ist",
+ "Success": "Erfolg",
+ "Added to Queue": "Zur Warteschlange hinzugefügt",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Dieses Spiel verwendet DirectStorage-Technologie. Wenn Sie diese Funktion nutzen, sollten Sie dieses Spiel nicht komprimieren.",
+ "You currently have": "Sie haben derzeit",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "Ordner, die überwacht werden. Das Schließen von CompactGUI beendet die Überwachung.",
+ "Are you sure you want to exit?": "Sind Sie sicher, dass Sie beenden möchten?",
+ "View on GitHub": "Auf GitHub ansehen",
+ "Buy me a coffee": "Spendieren Sie mir einen Kaffee",
+ "GB saved": "GB gespart",
+ "MB saved": "MB gespart",
+ "files being watched": "Dateien werden überwacht",
+ "Closing CompactGUI will stop them from being monitored.": "Das Schließen von CompactGUI beendet die Überwachung.",
+ "Language (Requires Restart)": " Sprache (Neustart erforderlich)",
+ "folders being watched": "Ordner werden überwacht",
+ "RestartRequired": "Spracheinstellungen gespeichert. Bitte starten Sie CompactGUI neu, um die Änderungen zu übernehmen。"
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/es-ES.json b/CompactGUI/i18n/es-ES.json
index 0496734..07f8150 100644
--- a/CompactGUI/i18n/es-ES.json
+++ b/CompactGUI/i18n/es-ES.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "Inicio",
- "Watcher": "Monitor",
- "Compression DB": "BD Compresión",
- "Admin": "Admin",
- "Open": "Abrir",
- "Exit": "Salir",
- "Settings": "Ajustes",
- "Filetype Management": "Gestión de tipos de archivo",
- "Manage local skipped filetypes": "Gestionar tipos de archivo omitidos locales",
- "edit": "editar",
- "Agression of online skiplist": "Agresividad de la lista de omisión online",
- "(?)": "(?)",
- "low": "baja",
- "medium": "media",
- "high": "alta",
- "System Integration": "Integración del sistema",
- "Add to right-click context menu": "Añadir al menú contextual",
- "Add to start menu": "Añadir al menú inicio",
- "Show notification on completion": "Mostrar notificación al finalizar",
- "Start CompactGUI in system tray": "Iniciar CompactGUI en la bandeja del sistema",
- "Compression Settings": "Ajustes de compresión",
- "Maximum Compression Threads": "Hilos máximos de compresión",
- "HDDs only use 1 thread": "Los HDD usan solo 1 hilo",
- "Estimate Compression for non-Steam Folders (beta)": "Estimar compresión para carpetas no-Steam (beta)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analiza rápidamente los archivos y estima su tasa de compresión sin escribir en el disco. ¡Esto probablemente será muy lento en HDDs!",
- "Background Watcher Settings": "Ajustes del monitor en segundo plano",
- "Monitor compressed folders for changes": "Monitorizar cambios en carpetas comprimidas",
- "Compress folders:": "Comprimir carpetas:",
- "Never": "Nunca",
- "When System is Idle": "Cuando el sistema esté inactivo",
- "On Schedule": "Programado",
- "On Schedule if system is also idle": "Programado (si el sistema está inactivo)",
- "every": "cada",
- "day(s)": "día(s)",
- "at": "a las",
- "Last ran:": "Última ejecución:",
- "Next scheduled:": "Próxima programada:",
- "Update Settings": "Ajustes de actualización",
- "Check for pre-release updates": "Buscar actualizaciones preliminares",
- "UI Settings": "Ajustes de interfaz",
- "Always show details on Compression Mode buttons": "Mostrar siempre detalles en botones de modo de compresión",
- "Database Results": "Resultados de la base de datos",
- "Last Fetched:": "Última obtención:",
- "Games": "Juegos",
- "Search by game name or SteamID...": "Buscar por nombre o SteamID...",
- "Sort By": "Ordenar por",
- "Game Name": "Nombre del juego",
- "Ascending": "Ascendente",
- "Descending": "Descendente",
- "SteamID": "SteamID",
- "Max Savings": "Ahorro máx.",
- "SteamID:": "SteamID:",
- "MODE": "MODO",
- "BEFORE": "ANTES",
- "AFTER": "DESPUÉS",
- "SAVINGS": "AHORRO",
- "TOTAL RESULTS": "RESULTADOS TOTALES",
- "UNCOMPRESSABLE FILETYPES": "TIPOS DE ARCHIVO NO COMPRIMIBLES",
- "uncompressed size": "tamaño sin comprimir",
- "contained files": "archivos contenidos",
- "Compress Selected": "Comprimir seleccionados",
- "select a folder": "seleccionar carpeta",
- "Version": "Versión",
- "Add Folder to Queue": "Añadir carpeta a la cola",
- "Compression Mode": "Modo de compresión",
- "Configuration": "Configuración",
- "Skip file types specified in settings": "Omitir tipos de archivo especificados en ajustes",
- "files will be skipped": "archivos serán omitidos",
- "Skip file types likely to compress poorly": "Omitir tipos de archivo difícilmente comprimibles",
- "Watch folder for changes": "Monitorizar cambios en carpeta",
- "Apply to all": "Aplicar a todo",
- "For Steam Games:": "Para juegos de Steam:",
- "estimate is based on database results": "la estimación se basa en resultados de la BD",
- "For Non-Steam Folders:": "Para carpetas no-Steam:",
- "estimate is calculated by block analysis.": "la estimación se calcula por análisis de bloques.",
- "If estimation is disabled, this will always show 0%": "Si la estimación está desactivada, esto siempre mostrará 0%",
- "skips files based on database results": "omite archivos basado en resultados de la BD",
- "skips files based on compression estimate": "omite archivos basado en estimación de compresión",
- "Compression Summary": "Resumen de compresión",
- "Before": "Antes",
- "After": "Después",
- "Space Saved": "Espacio ahorrado",
- "Files Compressed": "Archivos comprimidos",
- "Uncompress": "Descomprimir",
- "Compress Again": "Comprimir de nuevo",
- "Submit Results": "Enviar resultados",
- "Estimated size": "Tamaño estimado",
- "Savings": "Ahorro",
- "unknown": "desconocido",
- "Watched Folders": "Carpetas monitorizadas",
- "Add": "Añadir",
- "Add a custom folder to the watchlist": "Añadir carpeta personalizada a la lista",
- "saved": "ahorrado",
- "Last analysed": "Último análisis",
- "Re-analyse all watched folders": "Reanalizar todas las carpetas monitorizadas",
- "Cancel Background Compressor": "Cancelar compresor en segundo plano",
- "Compress All Now": "Comprimir todo ahora",
- "last compressed:": "última compresión:",
- "last modified:": "última modificación:",
- "% decayed": "% degradado",
- "Remove from Watchlist": "Eliminar de la lista",
- "Add to compression queue": "Añadir a la cola de compresión",
- "Re-analyse this folder": "Reanalizar esta carpeta",
- "Not Compressed": "No comprimido",
- "Compressed": "Comprimido",
- "Compress Folder": "Comprimir carpeta",
- "Invalid Folder": "Carpeta inválida",
- "OK": "Aceptar",
- "Unknown": "Desconocido",
- "days ago": "hace días",
- "hours ago": "hace horas",
- "minutes ago": "hace minutos",
- "just now": "ahora mismo",
- "Awaiting Compression": "Esperando compresión",
- "Analysing": "Analizando",
- "Working": "Trabajando",
- "Scheduled Compression Running": "Compresión programada en ejecución",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI está ejecutando una tarea programada y comprimirá las carpetas monitorizadas en segundo plano",
- "Scheduled Compression Completed": "Compresión programada completada",
- "Next scheduled task is on": "Siguiente tarea programada el:",
- "Restart as Admin": "Reiniciar como Admin",
- "Insufficient permission to access this folder.": "Permiso insuficiente para acceder a esta carpeta.",
- "Click to download": "Clic para descargar",
- "Update Available": "Actualización disponible",
- "Failed to submit to wiki": "Fallo al enviar a la wiki",
- "Please check your internet connection and try again": "Por favor verifique su conexión a internet e intente de nuevo",
- "Submitted to wiki": "Enviado a la wiki",
- "Applied to all folders": "Aplicado a todas las carpetas",
- "Compression options have been applied to all folders": "Las opciones de compresión se han aplicado a todas las carpetas",
- "Cannot remove folder": "No se puede eliminar la carpeta",
- "Please wait until the current operation is finished": "Por favor espere hasta que la operación actual termine",
- "Success": "Éxito",
- "Added to Queue": "Añadido a la cola",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Este juego usa tecnología DirectStorage. Si usa esta función, no debería comprimir este juego.",
- "You currently have": "Actualmente tiene",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "carpetas siendo monitorizadas. Cerrar CompactGUI detendrá su monitorización.",
- "Are you sure you want to exit?": "¿Está seguro de que desea salir?",
- "View on GitHub": "Ver en GitHub",
- "Buy me a coffee": "Cómprame un café",
- "GB saved": "GB ahorrados",
- "MB saved": "MB ahorrados",
- "files being watched": "archivos monitorizados",
- "Closing CompactGUI will stop them from being monitored.": "Cerrar CompactGUI detendrá la monitorización."
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Inicio",
+ "Watcher": "Monitor",
+ "Compression DB": "BD Compresión",
+ "Admin": "Admin",
+ "Open": "Abrir",
+ "Exit": "Salir",
+ "Settings": "Ajustes",
+ "Filetype Management": "Gestión de tipos de archivo",
+ "Manage local skipped filetypes": "Gestionar tipos de archivo omitidos locales",
+ "edit": "editar",
+ "Agression of online skiplist": "Agresividad de la lista de omisión online",
+ "(?)": "(?)",
+ "medium": "media",
+ "high": "alta",
+ "System Integration": "Integración del sistema",
+ "Add to right-click context menu": "Añadir al menú contextual",
+ "Add to start menu": "Añadir al menú inicio",
+ "Show notification on completion": "Mostrar notificación al finalizar",
+ "Start CompactGUI in system tray": "Iniciar CompactGUI en la bandeja del sistema",
+ "Compression Settings": "Ajustes de compresión",
+ "Maximum Compression Threads": "Hilos máximos de compresión",
+ "HDDs only use 1 thread": "Los HDD usan solo 1 hilo",
+ "Estimate Compression for non-Steam Folders (beta)": "Estimar compresión para carpetas no-Steam (beta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analiza rápidamente los archivos y estima su tasa de compresión sin escribir en el disco. ¡Esto probablemente será muy lento en HDDs!",
+ "Background Watcher Settings": "Ajustes del monitor en segundo plano",
+ "Monitor compressed folders for changes": "Monitorizar cambios en carpetas comprimidas",
+ "Compress folders:": "Comprimir carpetas:",
+ "Never": "Nunca",
+ "When System is Idle": "Cuando el sistema esté inactivo",
+ "On Schedule": "Programado",
+ "On Schedule if system is also idle": "Programado (si el sistema está inactivo)",
+ "every": "cada",
+ "day(s)": "día(s)",
+ "Last ran:": "Última ejecución:",
+ "Next scheduled:": "Próxima programada:",
+ "Update Settings": "Ajustes de actualización",
+ "Check for pre-release updates": "Buscar actualizaciones preliminares",
+ "UI Settings": "Ajustes de interfaz",
+ "Always show details on Compression Mode buttons": "Mostrar siempre detalles en botones de modo de compresión",
+ "Database Results": "Resultados de la base de datos",
+ "Last Fetched:": "Última obtención:",
+ "Games": "Juegos",
+ "Search by game name or SteamID...": "Buscar por nombre o SteamID...",
+ "Sort By": "Ordenar por",
+ "Game Name": "Nombre del juego",
+ "Ascending": "Ascendente",
+ "Descending": "Descendente",
+ "SteamID": "SteamID",
+ "Max Savings": "Ahorro máx.",
+ "SteamID:": "SteamID:",
+ "MODE": "MODO",
+ "BEFORE": "ANTES",
+ "AFTER": "DESPUÉS",
+ "SAVINGS": "AHORRO",
+ "TOTAL RESULTS": "RESULTADOS TOTALES",
+ "UNCOMPRESSABLE FILETYPES": "TIPOS DE ARCHIVO NO COMPRIMIBLES",
+ "uncompressed size": "tamaño sin comprimir",
+ "contained files": "archivos contenidos",
+ "Compress Selected": "Comprimir seleccionados",
+ "select a folder": "seleccionar carpeta",
+ "Version": "Versión",
+ "Add Folder to Queue": "Añadir carpeta a la cola",
+ "Compression Mode": "Modo de compresión",
+ "Configuration": "Configuración",
+ "Skip file types specified in settings": "Omitir tipos de archivo especificados en ajustes",
+ "files will be skipped": "archivos serán omitidos",
+ "Skip file types likely to compress poorly": "Omitir tipos de archivo difícilmente comprimibles",
+ "Watch folder for changes": "Monitorizar cambios en carpeta",
+ "Apply to all": "Aplicar a todo",
+ "For Steam Games:": "Para juegos de Steam:",
+ "estimate is based on database results": "la estimación se basa en resultados de la BD",
+ "For Non-Steam Folders:": "Para carpetas no-Steam:",
+ "estimate is calculated by block analysis.": "la estimación se calcula por análisis de bloques.",
+ "If estimation is disabled, this will always show 0%": "Si la estimación está desactivada, esto siempre mostrará 0%",
+ "skips files based on database results": "omite archivos basado en resultados de la BD",
+ "skips files based on compression estimate": "omite archivos basado en estimación de compresión",
+ "Compression Summary": "Resumen de compresión",
+ "Before": "Antes",
+ "After": "Después",
+ "Space Saved": "Espacio ahorrado",
+ "Files Compressed": "Archivos comprimidos",
+ "Uncompress": "Descomprimir",
+ "Compress Again": "Comprimir de nuevo",
+ "Submit Results": "Enviar resultados",
+ "Estimated size": "Tamaño estimado",
+ "Savings": "Ahorro",
+ "unknown": "desconocido",
+ "Watched Folders": "Carpetas monitorizadas",
+ "Add a custom folder to the watchlist": "Añadir carpeta personalizada a la lista",
+ "saved": "ahorrado",
+ "Last analysed": "Último análisis",
+ "Re-analyse all watched folders": "Reanalizar todas las carpetas monitorizadas",
+ "Cancel Background Compressor": "Cancelar compresor en segundo plano",
+ "Compress All Now": "Comprimir todo ahora",
+ "last compressed:": "última compresión:",
+ "last modified:": "última modificación:",
+ "% decayed": "% degradado",
+ "Remove from Watchlist": "Eliminar de la lista",
+ "Add to compression queue": "Añadir a la cola de compresión",
+ "Re-analyse this folder": "Reanalizar esta carpeta",
+ "Not Compressed": "No comprimido",
+ "Compressed": "Comprimido",
+ "Compress Folder": "Comprimir carpeta",
+ "Invalid Folder": "Carpeta inválida",
+ "OK": "Aceptar",
+ "Unknown": "Desconocido",
+ "days ago": "hace días",
+ "hours ago": "hace horas",
+ "minutes ago": "hace minutos",
+ "just now": "ahora mismo",
+ "Awaiting Compression": "Esperando compresión",
+ "Analysing": "Analizando",
+ "Working": "Trabajando",
+ "Scheduled Compression Running": "Compresión programada en ejecución",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI está ejecutando una tarea programada y comprimirá las carpetas monitorizadas en segundo plano",
+ "Scheduled Compression Completed": "Compresión programada completada",
+ "Next scheduled task is on": "Siguiente tarea programada el:",
+ "Restart as Admin": "Reiniciar como Admin",
+ "Insufficient permission to access this folder.": "Permiso insuficiente para acceder a esta carpeta.",
+ "Click to download": "Clic para descargar",
+ "Update Available": "Actualización disponible",
+ "Failed to submit to wiki": "Fallo al enviar a la wiki",
+ "Please check your internet connection and try again": "Por favor verifique su conexión a internet e intente de nuevo",
+ "Submitted to wiki": "Enviado a la wiki",
+ "Applied to all folders": "Aplicado a todas las carpetas",
+ "Compression options have been applied to all folders": "Las opciones de compresión se han aplicado a todas las carpetas",
+ "Cannot remove folder": "No se puede eliminar la carpeta",
+ "Please wait until the current operation is finished": "Por favor espere hasta que la operación actual termine",
+ "Success": "Éxito",
+ "Added to Queue": "Añadido a la cola",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Este juego usa tecnología DirectStorage. Si usa esta función, no debería comprimir este juego.",
+ "You currently have": "Actualmente tiene",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "carpetas siendo monitorizadas. Cerrar CompactGUI detendrá su monitorización.",
+ "Are you sure you want to exit?": "¿Está seguro de que desea salir?",
+ "View on GitHub": "Ver en GitHub",
+ "Buy me a coffee": "Cómprame un café",
+ "GB saved": "GB ahorrados",
+ "MB saved": "MB ahorrados",
+ "files being watched": "archivos monitorizados",
+ "Closing CompactGUI will stop them from being monitored.": "Cerrar CompactGUI detendrá la monitorización.",
+ "Language (Requires Restart)": " Idioma (Requiere reinicio)",
+ "folders being watched": "carpetas siendo vigiladas",
+ "RestartRequired": "Configuración de idioma guardada. Por favor, reinicie CompactGUI para aplicar los cambios."
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/fr-FR.json b/CompactGUI/i18n/fr-FR.json
index 9a5c66e..3fb6ccf 100644
--- a/CompactGUI/i18n/fr-FR.json
+++ b/CompactGUI/i18n/fr-FR.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "Accueil",
- "Watcher": "Surveillance",
- "Compression DB": "BDD Compression",
- "Admin": "Admin",
- "Open": "Ouvrir",
- "Exit": "Quitter",
- "Settings": "Paramètres",
- "Filetype Management": "Gestion types de fichiers",
- "Manage local skipped filetypes": "Gérer les types de fichiers ignorés localement",
- "edit": "éditer",
- "Agression of online skiplist": "Agressivité de la liste d'exclusion en ligne",
- "(?)": "(?)",
- "low": "faible",
- "medium": "moyen",
- "high": "élevé",
- "System Integration": "Intégration système",
- "Add to right-click context menu": "Ajouter au menu contextuel (clic droit)",
- "Add to start menu": "Ajouter au menu Démarrer",
- "Show notification on completion": "Afficher une notification à la fin",
- "Start CompactGUI in system tray": "Démarrer CompactGUI dans la barre d'état",
- "Compression Settings": "Paramètres de compression",
- "Maximum Compression Threads": "Threads de compression maximum",
- "HDDs only use 1 thread": "Les disques durs (HDD) n'utilisent qu'un thread",
- "Estimate Compression for non-Steam Folders (beta)": "Estimer la compression pour les dossiers non-Steam (bêta)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analyse rapidement les fichiers et estime leur taux de compression sans écrire sur le disque. Cela sera probablement très lent sur les disques durs !",
- "Background Watcher Settings": "Paramètres de surveillance en arrière-plan",
- "Monitor compressed folders for changes": "Surveiller les modifications des dossiers compressés",
- "Compress folders:": "Compresser les dossiers :",
- "Never": "Jamais",
- "When System is Idle": "Quand le système est inactif",
- "On Schedule": "Planifié",
- "On Schedule if system is also idle": "Planifié (si système inactif)",
- "every": "tous les",
- "day(s)": "jour(s)",
- "at": "à",
- "Last ran:": "Dernière exécution :",
- "Next scheduled:": "Prochaine planification :",
- "Update Settings": "Paramètres de mise à jour",
- "Check for pre-release updates": "Vérifier les mises à jour pré-release",
- "UI Settings": "Paramètres de l'interface",
- "Always show details on Compression Mode buttons": "Toujours afficher les détails sur les boutons de mode de compression",
- "Database Results": "Résultats de la base de données",
- "Last Fetched:": "Dernière récupération :",
- "Games": "Jeux",
- "Search by game name or SteamID...": "Rechercher par nom de jeu ou SteamID...",
- "Sort By": "Trier par",
- "Game Name": "Nom du jeu",
- "Ascending": "Croissant",
- "Descending": "Décroissant",
- "SteamID": "SteamID",
- "Max Savings": "Économies max",
- "SteamID:": "SteamID :",
- "MODE": "MODE",
- "BEFORE": "AVANT",
- "AFTER": "APRÈS",
- "SAVINGS": "ÉCONOMIES",
- "TOTAL RESULTS": "RÉSULTATS TOTAUX",
- "UNCOMPRESSABLE FILETYPES": "TYPES DE FICHIERS NON COMPRESSIBLES",
- "uncompressed size": "taille non compressée",
- "contained files": "fichiers contenus",
- "Compress Selected": "Compresser la sélection",
- "select a folder": "sélectionner un dossier",
- "Version": "Version",
- "Add Folder to Queue": "Ajouter le dossier à la file d'attente",
- "Compression Mode": "Mode de compression",
- "Configuration": "Configuration",
- "Skip file types specified in settings": "Ignorer les types de fichiers spécifiés dans les paramètres",
- "files will be skipped": "fichiers seront ignorés",
- "Skip file types likely to compress poorly": "Ignorer les types de fichiers peu compressibles",
- "Watch folder for changes": "Surveiller les modifications du dossier",
- "Apply to all": "Appliquer à tous",
- "For Steam Games:": "Pour les jeux Steam :",
- "estimate is based on database results": "l'estimation est basée sur les résultats de la BDD",
- "For Non-Steam Folders:": "Pour les dossiers non-Steam :",
- "estimate is calculated by block analysis.": "l'estimation est calculée par analyse de blocs.",
- "If estimation is disabled, this will always show 0%": "Si l'estimation est désactivée, ceci affichera toujours 0%",
- "skips files based on database results": "ignore les fichiers basés sur les résultats de la BDD",
- "skips files based on compression estimate": "ignore les fichiers basés sur l'estimation de compression",
- "Compression Summary": "Résumé de la compression",
- "Before": "Avant",
- "After": "Après",
- "Space Saved": "Espace économisé",
- "Files Compressed": "Fichiers compressés",
- "Uncompress": "Décompresser",
- "Compress Again": "Compresser à nouveau",
- "Submit Results": "Soumettre les résultats",
- "Estimated size": "Taille estimée",
- "Savings": "Économies",
- "unknown": "inconnu",
- "Watched Folders": "Dossiers surveillés",
- "Add": "Ajouter",
- "Add a custom folder to the watchlist": "Ajouter un dossier personnalisé à la liste de surveillance",
- "saved": "économisé",
- "Last analysed": "Dernière analyse",
- "Re-analyse all watched folders": "Réanalyser tous les dossiers surveillés",
- "Cancel Background Compressor": "Annuler la compression en arrière-plan",
- "Compress All Now": "Tout compresser maintenant",
- "last compressed:": "dernière compression :",
- "last modified:": "dernière modification :",
- "% decayed": "% dégradé",
- "Remove from Watchlist": "Retirer de la liste de surveillance",
- "Add to compression queue": "Ajouter à la file de compression",
- "Re-analyse this folder": "Réanalyser ce dossier",
- "Not Compressed": "Non compressé",
- "Compressed": "Compressé",
- "Compress Folder": "Compresser le dossier",
- "Invalid Folder": "Dossier invalide",
- "OK": "OK",
- "Unknown": "Inconnu",
- "days ago": "il y a des jours",
- "hours ago": "il y a des heures",
- "minutes ago": "il y a des minutes",
- "just now": "à l'instant",
- "Awaiting Compression": "En attente de compression",
- "Analysing": "Analyse en cours",
- "Working": "Traitement en cours",
- "Scheduled Compression Running": "Compression planifiée en cours",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI exécute une tâche planifiée et compressera les dossiers surveillés en arrière-plan",
- "Scheduled Compression Completed": "Compression planifiée terminée",
- "Next scheduled task is on": "Prochaine tâche planifiée le :",
- "Restart as Admin": "Redémarrer en tant qu'admin",
- "Insufficient permission to access this folder.": "Permission insuffisante pour accéder à ce dossier.",
- "Click to download": "Cliquer pour télécharger",
- "Update Available": "Mise à jour disponible",
- "Failed to submit to wiki": "Échec de la soumission au wiki",
- "Please check your internet connection and try again": "Veuillez vérifier votre connexion internet et réessayer",
- "Submitted to wiki": "Soumis au wiki",
- "Applied to all folders": "Appliqué à tous les dossiers",
- "Compression options have been applied to all folders": "Les options de compression ont été appliquées à tous les dossiers",
- "Cannot remove folder": "Impossible de retirer le dossier",
- "Please wait until the current operation is finished": "Veuillez attendre que l'opération en cours soit terminée",
- "Success": "Succès",
- "Added to Queue": "Ajouté à la file d'attente",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Ce jeu utilise la technologie DirectStorage. Si vous utilisez cette fonctionnalité, vous ne devriez pas compresser ce jeu.",
- "You currently have": "Vous avez actuellement",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "dossiers surveillés. Fermer CompactGUI arrêtera leur surveillance.",
- "Are you sure you want to exit?": "Êtes-vous sûr de vouloir quitter ?",
- "View on GitHub": "Voir sur GitHub",
- "Buy me a coffee": "M'offrir un café (Buy me a coffee)",
- "GB saved": "Go économisés",
- "MB saved": "Mo économisés",
- "files being watched": "fichiers surveillés",
- "Closing CompactGUI will stop them from being monitored.": "Fermer CompactGUI arrêtera leur surveillance."
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Accueil",
+ "Watcher": "Surveillance",
+ "Compression DB": "BDD Compression",
+ "Admin": "Admin",
+ "Open": "Ouvrir",
+ "Exit": "Quitter",
+ "Settings": "Paramètres",
+ "Filetype Management": "Gestion types de fichiers",
+ "Manage local skipped filetypes": "Gérer les types de fichiers ignorés localement",
+ "edit": "éditer",
+ "Agression of online skiplist": "Agressivité de la liste d'exclusion en ligne",
+ "(?)": "(?)",
+ "medium": "moyen",
+ "high": "élevé",
+ "System Integration": "Intégration système",
+ "Add to right-click context menu": "Ajouter au menu contextuel (clic droit)",
+ "Add to start menu": "Ajouter au menu Démarrer",
+ "Show notification on completion": "Afficher une notification à la fin",
+ "Start CompactGUI in system tray": "Démarrer CompactGUI dans la barre d'état",
+ "Compression Settings": "Paramètres de compression",
+ "Maximum Compression Threads": "Threads de compression maximum",
+ "HDDs only use 1 thread": "Les disques durs (HDD) n'utilisent qu'un thread",
+ "Estimate Compression for non-Steam Folders (beta)": "Estimer la compression pour les dossiers non-Steam (bêta)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Analyse rapidement les fichiers et estime leur taux de compression sans écrire sur le disque. Cela sera probablement très lent sur les disques durs !",
+ "Background Watcher Settings": "Paramètres de surveillance en arrière-plan",
+ "Monitor compressed folders for changes": "Surveiller les modifications des dossiers compressés",
+ "Compress folders:": "Compresser les dossiers :",
+ "Never": "Jamais",
+ "When System is Idle": "Quand le système est inactif",
+ "On Schedule": "Planifié",
+ "On Schedule if system is also idle": "Planifié (si système inactif)",
+ "every": "tous les",
+ "day(s)": "jour(s)",
+ "Last ran:": "Dernière exécution :",
+ "Next scheduled:": "Prochaine planification :",
+ "Update Settings": "Paramètres de mise à jour",
+ "Check for pre-release updates": "Vérifier les mises à jour pré-release",
+ "UI Settings": "Paramètres de l'interface",
+ "Always show details on Compression Mode buttons": "Toujours afficher les détails sur les boutons de mode de compression",
+ "Database Results": "Résultats de la base de données",
+ "Last Fetched:": "Dernière récupération :",
+ "Games": "Jeux",
+ "Search by game name or SteamID...": "Rechercher par nom de jeu ou SteamID...",
+ "Sort By": "Trier par",
+ "Game Name": "Nom du jeu",
+ "Ascending": "Croissant",
+ "Descending": "Décroissant",
+ "SteamID": "SteamID",
+ "Max Savings": "Économies max",
+ "SteamID:": "SteamID :",
+ "MODE": "MODE",
+ "BEFORE": "AVANT",
+ "AFTER": "APRÈS",
+ "SAVINGS": "ÉCONOMIES",
+ "TOTAL RESULTS": "RÉSULTATS TOTAUX",
+ "UNCOMPRESSABLE FILETYPES": "TYPES DE FICHIERS NON COMPRESSIBLES",
+ "uncompressed size": "taille non compressée",
+ "contained files": "fichiers contenus",
+ "Compress Selected": "Compresser la sélection",
+ "select a folder": "sélectionner un dossier",
+ "Version": "Version",
+ "Add Folder to Queue": "Ajouter le dossier à la file d'attente",
+ "Compression Mode": "Mode de compression",
+ "Configuration": "Configuration",
+ "Skip file types specified in settings": "Ignorer les types de fichiers spécifiés dans les paramètres",
+ "files will be skipped": "fichiers seront ignorés",
+ "Skip file types likely to compress poorly": "Ignorer les types de fichiers peu compressibles",
+ "Watch folder for changes": "Surveiller les modifications du dossier",
+ "Apply to all": "Appliquer à tous",
+ "For Steam Games:": "Pour les jeux Steam :",
+ "estimate is based on database results": "l'estimation est basée sur les résultats de la BDD",
+ "For Non-Steam Folders:": "Pour les dossiers non-Steam :",
+ "estimate is calculated by block analysis.": "l'estimation est calculée par analyse de blocs.",
+ "If estimation is disabled, this will always show 0%": "Si l'estimation est désactivée, ceci affichera toujours 0%",
+ "skips files based on database results": "ignore les fichiers basés sur les résultats de la BDD",
+ "skips files based on compression estimate": "ignore les fichiers basés sur l'estimation de compression",
+ "Compression Summary": "Résumé de la compression",
+ "Before": "Avant",
+ "After": "Après",
+ "Space Saved": "Espace économisé",
+ "Files Compressed": "Fichiers compressés",
+ "Uncompress": "Décompresser",
+ "Compress Again": "Compresser à nouveau",
+ "Submit Results": "Soumettre les résultats",
+ "Estimated size": "Taille estimée",
+ "Savings": "Économies",
+ "unknown": "inconnu",
+ "Watched Folders": "Dossiers surveillés",
+ "Add a custom folder to the watchlist": "Ajouter un dossier personnalisé à la liste de surveillance",
+ "saved": "économisé",
+ "Last analysed": "Dernière analyse",
+ "Re-analyse all watched folders": "Réanalyser tous les dossiers surveillés",
+ "Cancel Background Compressor": "Annuler la compression en arrière-plan",
+ "Compress All Now": "Tout compresser maintenant",
+ "last compressed:": "dernière compression :",
+ "last modified:": "dernière modification :",
+ "% decayed": "% dégradé",
+ "Remove from Watchlist": "Retirer de la liste de surveillance",
+ "Add to compression queue": "Ajouter à la file de compression",
+ "Re-analyse this folder": "Réanalyser ce dossier",
+ "Not Compressed": "Non compressé",
+ "Compressed": "Compressé",
+ "Compress Folder": "Compresser le dossier",
+ "Invalid Folder": "Dossier invalide",
+ "OK": "OK",
+ "Unknown": "Inconnu",
+ "days ago": "il y a des jours",
+ "hours ago": "il y a des heures",
+ "minutes ago": "il y a des minutes",
+ "just now": "à l'instant",
+ "Awaiting Compression": "En attente de compression",
+ "Analysing": "Analyse en cours",
+ "Working": "Traitement en cours",
+ "Scheduled Compression Running": "Compression planifiée en cours",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI exécute une tâche planifiée et compressera les dossiers surveillés en arrière-plan",
+ "Scheduled Compression Completed": "Compression planifiée terminée",
+ "Next scheduled task is on": "Prochaine tâche planifiée le :",
+ "Restart as Admin": "Redémarrer en tant qu'admin",
+ "Insufficient permission to access this folder.": "Permission insuffisante pour accéder à ce dossier.",
+ "Click to download": "Cliquer pour télécharger",
+ "Update Available": "Mise à jour disponible",
+ "Failed to submit to wiki": "Échec de la soumission au wiki",
+ "Please check your internet connection and try again": "Veuillez vérifier votre connexion internet et réessayer",
+ "Submitted to wiki": "Soumis au wiki",
+ "Applied to all folders": "Appliqué à tous les dossiers",
+ "Compression options have been applied to all folders": "Les options de compression ont été appliquées à tous les dossiers",
+ "Cannot remove folder": "Impossible de retirer le dossier",
+ "Please wait until the current operation is finished": "Veuillez attendre que l'opération en cours soit terminée",
+ "Success": "Succès",
+ "Added to Queue": "Ajouté à la file d'attente",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Ce jeu utilise la technologie DirectStorage. Si vous utilisez cette fonctionnalité, vous ne devriez pas compresser ce jeu.",
+ "You currently have": "Vous avez actuellement",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "dossiers surveillés. Fermer CompactGUI arrêtera leur surveillance.",
+ "Are you sure you want to exit?": "Êtes-vous sûr de vouloir quitter ?",
+ "View on GitHub": "Voir sur GitHub",
+ "Buy me a coffee": "M'offrir un café (Buy me a coffee)",
+ "GB saved": "Go économisés",
+ "MB saved": "Mo économisés",
+ "files being watched": "fichiers surveillés",
+ "Closing CompactGUI will stop them from being monitored.": "Fermer CompactGUI arrêtera leur surveillance.",
+ "Language (Requires Restart)": " Langue (Redémarrage requis)",
+ "folders being watched": "dossiers surveillés",
+ "RestartRequired": "Paramètres de langue enregistrés. Veuillez redémarrer CompactGUI pour appliquer les modifications."
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/ja-JP.json b/CompactGUI/i18n/ja-JP.json
index 235765f..5c2fac8 100644
--- a/CompactGUI/i18n/ja-JP.json
+++ b/CompactGUI/i18n/ja-JP.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "ホーム",
- "Watcher": "監視",
- "Compression DB": "圧縮データベース",
- "Admin": "管理者",
- "Open": "開く",
- "Exit": "終了",
- "Settings": "設定",
- "Filetype Management": "ファイルタイプ管理",
- "Manage local skipped filetypes": "ローカルのスキップするファイルタイプを管理",
- "edit": "編集",
- "Agression of online skiplist": "オンラインスキップリストの強度",
- "(?)": "(?)",
- "low": "低",
- "medium": "中",
- "high": "高",
- "System Integration": "システム統合",
- "Add to right-click context menu": "右クリックメニューに追加",
- "Add to start menu": "スタートメニューに追加",
- "Show notification on completion": "完了時に通知を表示",
- "Start CompactGUI in system tray": "システムトレイでCompactGUIを起動",
- "Compression Settings": "圧縮設定",
- "Maximum Compression Threads": "最大圧縮スレッド数",
- "HDDs only use 1 thread": "HDDは1スレッドのみ使用",
- "Estimate Compression for non-Steam Folders (beta)": "非Steamフォルダの圧縮率を推定 (ベータ)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "ファイルを高速に解析し、ディスクに書き込まずに圧縮率を推定します。HDDでは非常に遅くなる可能性があります!",
- "Background Watcher Settings": "バックグラウンド監視設定",
- "Monitor compressed folders for changes": "圧縮フォルダの変更を監視",
- "Compress folders:": "フォルダを圧縮:",
- "Never": "しない",
- "When System is Idle": "システムアイドル時",
- "On Schedule": "スケジュール",
- "On Schedule if system is also idle": "スケジュール(システムアイドル時のみ)",
- "every": "間隔",
- "day(s)": "日",
- "at": "時刻",
- "Last ran:": "前回の実行:",
- "Next scheduled:": "次回の予定:",
- "Update Settings": "更新設定",
- "Check for pre-release updates": "プレリリース更新を確認",
- "UI Settings": "UI設定",
- "Always show details on Compression Mode buttons": "圧縮モードボタンに詳細を常に表示",
- "Database Results": "データベース結果",
- "Last Fetched:": "最終取得:",
- "Games": "ゲーム",
- "Search by game name or SteamID...": "ゲーム名またはSteamIDで検索...",
- "Sort By": "並べ替え",
- "Game Name": "ゲーム名",
- "Ascending": "昇順",
- "Descending": "降順",
- "SteamID": "SteamID",
- "Max Savings": "最大削減量",
- "SteamID:": "SteamID:",
- "MODE": "モード",
- "BEFORE": "圧縮前",
- "AFTER": "圧縮後",
- "SAVINGS": "削減率",
- "TOTAL RESULTS": "合計結果",
- "UNCOMPRESSABLE FILETYPES": "圧縮不可のファイルタイプ",
- "uncompressed size": "未圧縮サイズ",
- "contained files": "含まれるファイル",
- "Compress Selected": "選択項目を圧縮",
- "select a folder": "フォルダを選択",
- "Version": "バージョン",
- "Add Folder to Queue": "フォルダをキューに追加",
- "Compression Mode": "圧縮モード",
- "Configuration": "構成",
- "Skip file types specified in settings": "設定で指定されたファイルタイプをスキップ",
- "files will be skipped": "ファイルがスキップされます",
- "Skip file types likely to compress poorly": "圧縮率が低い可能性のあるファイルタイプをスキップ",
- "Watch folder for changes": "フォルダの変更を監視",
- "Apply to all": "すべてに適用",
- "For Steam Games:": "Steamゲームの場合:",
- "estimate is based on database results": "推定はデータベースの結果に基づきます",
- "For Non-Steam Folders:": "非Steamフォルダの場合:",
- "estimate is calculated by block analysis.": "推定はブロック分析によって計算されます。",
- "If estimation is disabled, this will always show 0%": "推定が無効な場合、常に0%と表示されます",
- "skips files based on database results": "データベースの結果に基づいてファイルをスキップ",
- "skips files based on compression estimate": "圧縮推定に基づいてファイルをスキップ",
- "Compression Summary": "圧縮概要",
- "Before": "圧縮前",
- "After": "圧縮後",
- "Space Saved": "節約された容量",
- "Files Compressed": "圧縮されたファイル",
- "Uncompress": "解凍",
- "Compress Again": "再圧縮",
- "Submit Results": "結果を送信",
- "Estimated size": "推定サイズ",
- "Savings": "削減",
- "unknown": "不明",
- "Watched Folders": "監視中のフォルダ",
- "Add": "追加",
- "Add a custom folder to the watchlist": "カスタムフォルダをウォッチリストに追加",
- "saved": "節約",
- "Last analysed": "最終分析",
- "Re-analyse all watched folders": "すべての監視フォルダを再分析",
- "Cancel Background Compressor": "バックグラウンド圧縮をキャンセル",
- "Compress All Now": "今すぐすべて圧縮",
- "last compressed:": "最終圧縮:",
- "last modified:": "最終更新:",
- "% decayed": "% 劣化",
- "Remove from Watchlist": "ウォッチリストから削除",
- "Add to compression queue": "圧縮キューに追加",
- "Re-analyse this folder": "このフォルダを再分析",
- "Not Compressed": "未圧縮",
- "Compressed": "圧縮済み",
- "Compress Folder": "フォルダを圧縮",
- "Invalid Folder": "無効なフォルダ",
- "OK": "OK",
- "Unknown": "不明",
- "days ago": "日前",
- "hours ago": "時間前",
- "minutes ago": "分前",
- "just now": "たった今",
- "Awaiting Compression": "圧縮待ち",
- "Analysing": "分析中",
- "Working": "処理中",
- "Scheduled Compression Running": "スケジュール圧縮を実行中",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUIはスケジュールタスクを実行しており、バックグラウンドで監視フォルダを圧縮します",
- "Scheduled Compression Completed": "スケジュール圧縮完了",
- "Next scheduled task is on": "次回のスケジュールタスク:",
- "Restart as Admin": "管理者として再起動",
- "Insufficient permission to access this folder.": "このフォルダにアクセスする権限がありません。",
- "Click to download": "クリックしてダウンロード",
- "Update Available": "アップデート利用可能",
- "Failed to submit to wiki": "Wikiへの送信に失敗しました",
- "Please check your internet connection and try again": "インターネット接続を確認して再試行してください",
- "Submitted to wiki": "Wikiに送信しました",
- "Applied to all folders": "すべてのフォルダに適用しました",
- "Compression options have been applied to all folders": "圧縮オプションがすべてのフォルダに適用されました",
- "Cannot remove folder": "フォルダを削除できません",
- "Please wait until the current operation is finished": "現在の操作が完了するまでお待ちください",
- "Success": "成功",
- "Added to Queue": "キューに追加しました",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "このゲームはDirectStorage技術を使用しています。この機能を使用している場合は、このゲームを圧縮しないでください。",
- "You currently have": "現在",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "個のフォルダを監視中です。CompactGUIを閉じると、監視が停止します。",
- "Are you sure you want to exit?": "終了してもよろしいですか?",
- "View on GitHub": "GitHubで見る",
- "Buy me a coffee": "寄付する (Buy me a coffee)",
- "GB saved": "GB 節約",
- "MB saved": "MB 節約",
- "files being watched": "ファイル監視中",
- "Closing CompactGUI will stop them from being monitored.": "CompactGUIを閉じると監視が停止します。"
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "ホーム",
+ "Watcher": "監視",
+ "Compression DB": "圧縮データベース",
+ "Admin": "管理者",
+ "Open": "開く",
+ "Exit": "終了",
+ "Settings": "設定",
+ "Filetype Management": "ファイルタイプ管理",
+ "Manage local skipped filetypes": "ローカルのスキップするファイルタイプを管理",
+ "edit": "編集",
+ "Agression of online skiplist": "オンラインスキップリストの強度",
+ "(?)": "(?)",
+ "medium": "中",
+ "high": "高",
+ "System Integration": "システム統合",
+ "Add to right-click context menu": "右クリックメニューに追加",
+ "Add to start menu": "スタートメニューに追加",
+ "Show notification on completion": "完了時に通知を表示",
+ "Start CompactGUI in system tray": "システムトレイでCompactGUIを起動",
+ "Compression Settings": "圧縮設定",
+ "Maximum Compression Threads": "最大圧縮スレッド数",
+ "HDDs only use 1 thread": "HDDは1スレッドのみ使用",
+ "Estimate Compression for non-Steam Folders (beta)": "非Steamフォルダの圧縮率を推定 (ベータ)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "ファイルを高速に解析し、ディスクに書き込まずに圧縮率を推定します。HDDでは非常に遅くなる可能性があります!",
+ "Background Watcher Settings": "バックグラウンド監視設定",
+ "Monitor compressed folders for changes": "圧縮フォルダの変更を監視",
+ "Compress folders:": "フォルダを圧縮:",
+ "Never": "しない",
+ "When System is Idle": "システムアイドル時",
+ "On Schedule": "スケジュール",
+ "On Schedule if system is also idle": "スケジュール(システムアイドル時のみ)",
+ "every": "間隔",
+ "day(s)": "日",
+ "Last ran:": "前回の実行:",
+ "Next scheduled:": "次回の予定:",
+ "Update Settings": "更新設定",
+ "Check for pre-release updates": "プレリリース更新を確認",
+ "UI Settings": "UI設定",
+ "Always show details on Compression Mode buttons": "圧縮モードボタンに詳細を常に表示",
+ "Database Results": "データベース結果",
+ "Last Fetched:": "最終取得:",
+ "Games": "ゲーム",
+ "Search by game name or SteamID...": "ゲーム名またはSteamIDで検索...",
+ "Sort By": "並べ替え",
+ "Game Name": "ゲーム名",
+ "Ascending": "昇順",
+ "Descending": "降順",
+ "SteamID": "SteamID",
+ "Max Savings": "最大削減量",
+ "SteamID:": "SteamID:",
+ "MODE": "モード",
+ "BEFORE": "圧縮前",
+ "AFTER": "圧縮後",
+ "SAVINGS": "削減率",
+ "TOTAL RESULTS": "合計結果",
+ "UNCOMPRESSABLE FILETYPES": "圧縮不可のファイルタイプ",
+ "uncompressed size": "未圧縮サイズ",
+ "contained files": "含まれるファイル",
+ "Compress Selected": "選択項目を圧縮",
+ "select a folder": "フォルダを選択",
+ "Version": "バージョン",
+ "Add Folder to Queue": "フォルダをキューに追加",
+ "Compression Mode": "圧縮モード",
+ "Configuration": "構成",
+ "Skip file types specified in settings": "設定で指定されたファイルタイプをスキップ",
+ "files will be skipped": "ファイルがスキップされます",
+ "Skip file types likely to compress poorly": "圧縮率が低い可能性のあるファイルタイプをスキップ",
+ "Watch folder for changes": "フォルダの変更を監視",
+ "Apply to all": "すべてに適用",
+ "For Steam Games:": "Steamゲームの場合:",
+ "estimate is based on database results": "推定はデータベースの結果に基づきます",
+ "For Non-Steam Folders:": "非Steamフォルダの場合:",
+ "estimate is calculated by block analysis.": "推定はブロック分析によって計算されます。",
+ "If estimation is disabled, this will always show 0%": "推定が無効な場合、常に0%と表示されます",
+ "skips files based on database results": "データベースの結果に基づいてファイルをスキップ",
+ "skips files based on compression estimate": "圧縮推定に基づいてファイルをスキップ",
+ "Compression Summary": "圧縮概要",
+ "Before": "圧縮前",
+ "After": "圧縮後",
+ "Space Saved": "節約された容量",
+ "Files Compressed": "圧縮されたファイル",
+ "Uncompress": "解凍",
+ "Compress Again": "再圧縮",
+ "Submit Results": "結果を送信",
+ "Estimated size": "推定サイズ",
+ "Savings": "削減",
+ "unknown": "不明",
+ "Watched Folders": "監視中のフォルダ",
+ "Add a custom folder to the watchlist": "カスタムフォルダをウォッチリストに追加",
+ "saved": "節約",
+ "Last analysed": "最終分析",
+ "Re-analyse all watched folders": "すべての監視フォルダを再分析",
+ "Cancel Background Compressor": "バックグラウンド圧縮をキャンセル",
+ "Compress All Now": "今すぐすべて圧縮",
+ "last compressed:": "最終圧縮:",
+ "last modified:": "最終更新:",
+ "% decayed": "% 劣化",
+ "Remove from Watchlist": "ウォッチリストから削除",
+ "Add to compression queue": "圧縮キューに追加",
+ "Re-analyse this folder": "このフォルダを再分析",
+ "Not Compressed": "未圧縮",
+ "Compressed": "圧縮済み",
+ "Compress Folder": "フォルダを圧縮",
+ "Invalid Folder": "無効なフォルダ",
+ "OK": "OK",
+ "Unknown": "不明",
+ "days ago": "日前",
+ "hours ago": "時間前",
+ "minutes ago": "分前",
+ "just now": "たった今",
+ "Awaiting Compression": "圧縮待ち",
+ "Analysing": "分析中",
+ "Working": "処理中",
+ "Scheduled Compression Running": "スケジュール圧縮を実行中",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUIはスケジュールタスクを実行しており、バックグラウンドで監視フォルダを圧縮します",
+ "Scheduled Compression Completed": "スケジュール圧縮完了",
+ "Next scheduled task is on": "次回のスケジュールタスク:",
+ "Restart as Admin": "管理者として再起動",
+ "Insufficient permission to access this folder.": "このフォルダにアクセスする権限がありません。",
+ "Click to download": "クリックしてダウンロード",
+ "Update Available": "アップデート利用可能",
+ "Failed to submit to wiki": "Wikiへの送信に失敗しました",
+ "Please check your internet connection and try again": "インターネット接続を確認して再試行してください",
+ "Submitted to wiki": "Wikiに送信しました",
+ "Applied to all folders": "すべてのフォルダに適用しました",
+ "Compression options have been applied to all folders": "圧縮オプションがすべてのフォルダに適用されました",
+ "Cannot remove folder": "フォルダを削除できません",
+ "Please wait until the current operation is finished": "現在の操作が完了するまでお待ちください",
+ "Success": "成功",
+ "Added to Queue": "キューに追加しました",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "このゲームはDirectStorage技術を使用しています。この機能を使用している場合は、このゲームを圧縮しないでください。",
+ "You currently have": "現在",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "個のフォルダを監視中です。CompactGUIを閉じると、監視が停止します。",
+ "Are you sure you want to exit?": "終了してもよろしいですか?",
+ "View on GitHub": "GitHubで見る",
+ "Buy me a coffee": "寄付する (Buy me a coffee)",
+ "GB saved": "GB 節約",
+ "MB saved": "MB 節約",
+ "files being watched": "ファイル監視中",
+ "Closing CompactGUI will stop them from being monitored.": "CompactGUIを閉じると監視が停止します。",
+ "Language (Requires Restart)": " 言語 (再起動が必要)",
+ "folders being watched": "個のフォルダーが監視されています",
+ "RestartRequired": "言語設定が保存されました。変更を適用するには CompactGUI を再起動してください。"
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/ko-KR.json b/CompactGUI/i18n/ko-KR.json
index b292844..f247a57 100644
--- a/CompactGUI/i18n/ko-KR.json
+++ b/CompactGUI/i18n/ko-KR.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "홈",
- "Watcher": "감시",
- "Compression DB": "압축 DB",
- "Admin": "관리자",
- "Open": "열기",
- "Exit": "종료",
- "Settings": "설정",
- "Filetype Management": "파일 형식 관리",
- "Manage local skipped filetypes": "로컬 건너뛰기 파일 형식 관리",
- "edit": "편집",
- "Agression of online skiplist": "온라인 건너뛰기 목록 강도",
- "(?)": "(?)",
- "low": "낮음",
- "medium": "중간",
- "high": "높음",
- "System Integration": "시스템 통합",
- "Add to right-click context menu": "우클릭 메뉴에 추가",
- "Add to start menu": "시작 메뉴에 추가",
- "Show notification on completion": "완료 시 알림 표시",
- "Start CompactGUI in system tray": "시스템 트레이에서 CompactGUI 시작",
- "Compression Settings": "압축 설정",
- "Maximum Compression Threads": "최대 압축 스레드",
- "HDDs only use 1 thread": "HDD는 1개 스레드만 사용",
- "Estimate Compression for non-Steam Folders (beta)": "비 Steam 폴더 압축률 예상 (베타)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "파일을 빠르게 분석하여 디스크에 쓰지 않고 압축률을 예상합니다. HDD에서는 매우 느릴 수 있습니다!",
- "Background Watcher Settings": "백그라운드 감시 설정",
- "Monitor compressed folders for changes": "압축된 폴더 변경 감시",
- "Compress folders:": "폴더 압축:",
- "Never": "안 함",
- "When System is Idle": "시스템 유휴 시",
- "On Schedule": "예약",
- "On Schedule if system is also idle": "예약 (시스템 유휴 시)",
- "every": "간격",
- "day(s)": "일",
- "at": "시간",
- "Last ran:": "최근 실행:",
- "Next scheduled:": "다음 예약:",
- "Update Settings": "업데이트 설정",
- "Check for pre-release updates": "사전 릴리스 업데이트 확인",
- "UI Settings": "UI 설정",
- "Always show details on Compression Mode buttons": "압축 모드 버튼에 항상 세부 정보 표시",
- "Database Results": "데이터베이스 결과",
- "Last Fetched:": "최근 가져옴:",
- "Games": "게임",
- "Search by game name or SteamID...": "게임 이름 또는 SteamID로 검색...",
- "Sort By": "정렬",
- "Game Name": "게임 이름",
- "Ascending": "오름차순",
- "Descending": "내림차순",
- "SteamID": "SteamID",
- "Max Savings": "최대 절약",
- "SteamID:": "SteamID:",
- "MODE": "모드",
- "BEFORE": "압축 전",
- "AFTER": "압축 후",
- "SAVINGS": "절약",
- "TOTAL RESULTS": "총 결과",
- "UNCOMPRESSABLE FILETYPES": "압축 불가능한 파일 형식",
- "uncompressed size": "압축되지 않은 크기",
- "contained files": "포함된 파일",
- "Compress Selected": "선택 항목 압축",
- "select a folder": "폴더 선택",
- "Version": "버전",
- "Add Folder to Queue": "대기열에 폴더 추가",
- "Compression Mode": "압축 모드",
- "Configuration": "구성",
- "Skip file types specified in settings": "설정된 파일 형식 건너뛰기",
- "files will be skipped": "개 파일이 건너뛰어집니다",
- "Skip file types likely to compress poorly": "압축 효율이 낮은 파일 형식 건너뛰기",
- "Watch folder for changes": "폴더 변경 감시",
- "Apply to all": "모두 적용",
- "For Steam Games:": "Steam 게임:",
- "estimate is based on database results": "예상치는 데이터베이스 결과를 기반으로 합니다",
- "For Non-Steam Folders:": "비 Steam 폴더:",
- "estimate is calculated by block analysis.": "예상치는 블록 분석으로 계산됩니다.",
- "If estimation is disabled, this will always show 0%": "예상이 비활성화되면 항상 0%로 표시됩니다",
- "skips files based on database results": "데이터베이스 결과에 따라 파일 건너뛰기",
- "skips files based on compression estimate": "압축 예상치에 따라 파일 건너뛰기",
- "Compression Summary": "압축 요약",
- "Before": "압축 전",
- "After": "압축 후",
- "Space Saved": "절약된 공간",
- "Files Compressed": "압축된 파일",
- "Uncompress": "압축 해제",
- "Compress Again": "다시 압축",
- "Submit Results": "결과 제출",
- "Estimated size": "예상 크기",
- "Savings": "절약",
- "unknown": "알 수 없음",
- "Watched Folders": "감시 중인 폴더",
- "Add": "추가",
- "Add a custom folder to the watchlist": "감시 목록에 사용자 지정 폴더 추가",
- "saved": "절약됨",
- "Last analysed": "최근 분석",
- "Re-analyse all watched folders": "모든 감시 폴더 재분석",
- "Cancel Background Compressor": "백그라운드 압축 취소",
- "Compress All Now": "지금 모두 압축",
- "last compressed:": "최근 압축:",
- "last modified:": "최근 수정:",
- "% decayed": "% 감소됨",
- "Remove from Watchlist": "감시 목록에서 제거",
- "Add to compression queue": "압축 대기열에 추가",
- "Re-analyse this folder": "이 폴더 재분석",
- "Not Compressed": "압축되지 않음",
- "Compressed": "압축됨",
- "Compress Folder": "폴더 압축",
- "Invalid Folder": "유효하지 않은 폴더",
- "OK": "확인",
- "Unknown": "알 수 없음",
- "days ago": "일 전",
- "hours ago": "시간 전",
- "minutes ago": "분 전",
- "just now": "방금",
- "Awaiting Compression": "압축 대기 중",
- "Analysing": "분석 중",
- "Working": "작업 중",
- "Scheduled Compression Running": "예약된 압축 실행 중",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI가 예약된 작업을 실행 중이며 백그라운드에서 감시 폴더를 압축합니다",
- "Scheduled Compression Completed": "예약된 압축 완료",
- "Next scheduled task is on": "다음 예약 작업:",
- "Restart as Admin": "관리자 권한으로 다시 시작",
- "Insufficient permission to access this folder.": "이 폴더에 액세스할 권한이 부족합니다.",
- "Click to download": "다운로드하려면 클릭",
- "Update Available": "업데이트 가능",
- "Failed to submit to wiki": "Wiki 제출 실패",
- "Please check your internet connection and try again": "인터넷 연결을 확인하고 다시 시도해 주세요",
- "Submitted to wiki": "Wiki에 제출됨",
- "Applied to all folders": "모든 폴더에 적용됨",
- "Compression options have been applied to all folders": "압축 옵션이 모든 폴더에 적용되었습니다",
- "Cannot remove folder": "폴더를 제거할 수 없음",
- "Please wait until the current operation is finished": "현재 작업이 완료될 때까지 기다려 주세요",
- "Success": "성공",
- "Added to Queue": "대기열에 추가됨",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "이 게임은 DirectStorage 기술을 사용합니다. 이 기능을 사용하는 경우 이 게임을 압축하지 마십시오.",
- "You currently have": "현재",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "개의 폴더가 감시되고 있습니다. CompactGUI를 닫으면 감시가 중지됩니다.",
- "Are you sure you want to exit?": "정말 종료하시겠습니까?",
- "View on GitHub": "GitHub에서 보기",
- "Buy me a coffee": "커피 한 잔 사주기 (후원)",
- "GB saved": "GB 절약",
- "MB saved": "MB 절약",
- "files being watched": "개 파일 감시 중",
- "Closing CompactGUI will stop them from being monitored.": "CompactGUI를 닫으면 감시가 중지됩니다."
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "홈",
+ "Watcher": "감시",
+ "Compression DB": "압축 DB",
+ "Admin": "관리자",
+ "Open": "열기",
+ "Exit": "종료",
+ "Settings": "설정",
+ "Filetype Management": "파일 형식 관리",
+ "Manage local skipped filetypes": "로컬 건너뛰기 파일 형식 관리",
+ "edit": "편집",
+ "Agression of online skiplist": "온라인 건너뛰기 목록 강도",
+ "(?)": "(?)",
+ "medium": "중간",
+ "high": "높음",
+ "System Integration": "시스템 통합",
+ "Add to right-click context menu": "우클릭 메뉴에 추가",
+ "Add to start menu": "시작 메뉴에 추가",
+ "Show notification on completion": "완료 시 알림 표시",
+ "Start CompactGUI in system tray": "시스템 트레이에서 CompactGUI 시작",
+ "Compression Settings": "압축 설정",
+ "Maximum Compression Threads": "최대 압축 스레드",
+ "HDDs only use 1 thread": "HDD는 1개 스레드만 사용",
+ "Estimate Compression for non-Steam Folders (beta)": "비 Steam 폴더 압축률 예상 (베타)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "파일을 빠르게 분석하여 디스크에 쓰지 않고 압축률을 예상합니다. HDD에서는 매우 느릴 수 있습니다!",
+ "Background Watcher Settings": "백그라운드 감시 설정",
+ "Monitor compressed folders for changes": "압축된 폴더 변경 감시",
+ "Compress folders:": "폴더 압축:",
+ "Never": "안 함",
+ "When System is Idle": "시스템 유휴 시",
+ "On Schedule": "예약",
+ "On Schedule if system is also idle": "예약 (시스템 유휴 시)",
+ "every": "간격",
+ "day(s)": "일",
+ "Last ran:": "최근 실행:",
+ "Next scheduled:": "다음 예약:",
+ "Update Settings": "업데이트 설정",
+ "Check for pre-release updates": "사전 릴리스 업데이트 확인",
+ "UI Settings": "UI 설정",
+ "Always show details on Compression Mode buttons": "압축 모드 버튼에 항상 세부 정보 표시",
+ "Database Results": "데이터베이스 결과",
+ "Last Fetched:": "최근 가져옴:",
+ "Games": "게임",
+ "Search by game name or SteamID...": "게임 이름 또는 SteamID로 검색...",
+ "Sort By": "정렬",
+ "Game Name": "게임 이름",
+ "Ascending": "오름차순",
+ "Descending": "내림차순",
+ "SteamID": "SteamID",
+ "Max Savings": "최대 절약",
+ "SteamID:": "SteamID:",
+ "MODE": "모드",
+ "BEFORE": "압축 전",
+ "AFTER": "압축 후",
+ "SAVINGS": "절약",
+ "TOTAL RESULTS": "총 결과",
+ "UNCOMPRESSABLE FILETYPES": "압축 불가능한 파일 형식",
+ "uncompressed size": "압축되지 않은 크기",
+ "contained files": "포함된 파일",
+ "Compress Selected": "선택 항목 압축",
+ "select a folder": "폴더 선택",
+ "Version": "버전",
+ "Add Folder to Queue": "대기열에 폴더 추가",
+ "Compression Mode": "압축 모드",
+ "Configuration": "구성",
+ "Skip file types specified in settings": "설정된 파일 형식 건너뛰기",
+ "files will be skipped": "개 파일이 건너뛰어집니다",
+ "Skip file types likely to compress poorly": "압축 효율이 낮은 파일 형식 건너뛰기",
+ "Watch folder for changes": "폴더 변경 감시",
+ "Apply to all": "모두 적용",
+ "For Steam Games:": "Steam 게임:",
+ "estimate is based on database results": "예상치는 데이터베이스 결과를 기반으로 합니다",
+ "For Non-Steam Folders:": "비 Steam 폴더:",
+ "estimate is calculated by block analysis.": "예상치는 블록 분석으로 계산됩니다.",
+ "If estimation is disabled, this will always show 0%": "예상이 비활성화되면 항상 0%로 표시됩니다",
+ "skips files based on database results": "데이터베이스 결과에 따라 파일 건너뛰기",
+ "skips files based on compression estimate": "압축 예상치에 따라 파일 건너뛰기",
+ "Compression Summary": "압축 요약",
+ "Before": "압축 전",
+ "After": "압축 후",
+ "Space Saved": "절약된 공간",
+ "Files Compressed": "압축된 파일",
+ "Uncompress": "압축 해제",
+ "Compress Again": "다시 압축",
+ "Submit Results": "결과 제출",
+ "Estimated size": "예상 크기",
+ "Savings": "절약",
+ "unknown": "알 수 없음",
+ "Watched Folders": "감시 중인 폴더",
+ "Add a custom folder to the watchlist": "감시 목록에 사용자 지정 폴더 추가",
+ "saved": "절약됨",
+ "Last analysed": "최근 분석",
+ "Re-analyse all watched folders": "모든 감시 폴더 재분석",
+ "Cancel Background Compressor": "백그라운드 압축 취소",
+ "Compress All Now": "지금 모두 압축",
+ "last compressed:": "최근 압축:",
+ "last modified:": "최근 수정:",
+ "% decayed": "% 감소됨",
+ "Remove from Watchlist": "감시 목록에서 제거",
+ "Add to compression queue": "압축 대기열에 추가",
+ "Re-analyse this folder": "이 폴더 재분석",
+ "Not Compressed": "압축되지 않음",
+ "Compressed": "압축됨",
+ "Compress Folder": "폴더 압축",
+ "Invalid Folder": "유효하지 않은 폴더",
+ "OK": "확인",
+ "Unknown": "알 수 없음",
+ "days ago": "일 전",
+ "hours ago": "시간 전",
+ "minutes ago": "분 전",
+ "just now": "방금",
+ "Awaiting Compression": "압축 대기 중",
+ "Analysing": "분석 중",
+ "Working": "작업 중",
+ "Scheduled Compression Running": "예약된 압축 실행 중",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI가 예약된 작업을 실행 중이며 백그라운드에서 감시 폴더를 압축합니다",
+ "Scheduled Compression Completed": "예약된 압축 완료",
+ "Next scheduled task is on": "다음 예약 작업:",
+ "Restart as Admin": "관리자 권한으로 다시 시작",
+ "Insufficient permission to access this folder.": "이 폴더에 액세스할 권한이 부족합니다.",
+ "Click to download": "다운로드하려면 클릭",
+ "Update Available": "업데이트 가능",
+ "Failed to submit to wiki": "Wiki 제출 실패",
+ "Please check your internet connection and try again": "인터넷 연결을 확인하고 다시 시도해 주세요",
+ "Submitted to wiki": "Wiki에 제출됨",
+ "Applied to all folders": "모든 폴더에 적용됨",
+ "Compression options have been applied to all folders": "압축 옵션이 모든 폴더에 적용되었습니다",
+ "Cannot remove folder": "폴더를 제거할 수 없음",
+ "Please wait until the current operation is finished": "현재 작업이 완료될 때까지 기다려 주세요",
+ "Success": "성공",
+ "Added to Queue": "대기열에 추가됨",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "이 게임은 DirectStorage 기술을 사용합니다. 이 기능을 사용하는 경우 이 게임을 압축하지 마십시오.",
+ "You currently have": "현재",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "개의 폴더가 감시되고 있습니다. CompactGUI를 닫으면 감시가 중지됩니다.",
+ "Are you sure you want to exit?": "정말 종료하시겠습니까?",
+ "View on GitHub": "GitHub에서 보기",
+ "Buy me a coffee": "커피 한 잔 사주기 (후원)",
+ "GB saved": "GB 절약",
+ "MB saved": "MB 절약",
+ "files being watched": "개 파일 감시 중",
+ "Closing CompactGUI will stop them from being monitored.": "CompactGUI를 닫으면 감시가 중지됩니다.",
+ "Language (Requires Restart)": " 언어 (다시 시작 필요)",
+ "folders being watched": "개의 폴더가 감시되고 있습니다",
+ "RestartRequired": "언어 설정이 저장되었습니다. 변경 사항을 적용하려면 CompactGUI를 다시 시작하십시오."
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/ru-RU.json b/CompactGUI/i18n/ru-RU.json
index 27c947b..aff73ff 100644
--- a/CompactGUI/i18n/ru-RU.json
+++ b/CompactGUI/i18n/ru-RU.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "Главная",
- "Watcher": "Наблюдение",
- "Compression DB": "БД сжатия",
- "Admin": "Админ",
- "Open": "Открыть",
- "Exit": "Выход",
- "Settings": "Настройки",
- "Filetype Management": "Управление типами файлов",
- "Manage local skipped filetypes": "Управление локальными пропускаемыми типами",
- "edit": "изм.",
- "Agression of online skiplist": "Агрессивность онлайн-списка пропуска",
- "(?)": "(?)",
- "low": "низкая",
- "medium": "средняя",
- "high": "высокая",
- "System Integration": "Интеграция в систему",
- "Add to right-click context menu": "Добавить в контекстное меню",
- "Add to start menu": "Добавить в меню Пуск",
- "Show notification on completion": "Уведомлять по завершении",
- "Start CompactGUI in system tray": "Запускать CompactGUI в трее",
- "Compression Settings": "Настройки сжатия",
- "Maximum Compression Threads": "Макс. потоков сжатия",
- "HDDs only use 1 thread": "HDD используют только 1 поток",
- "Estimate Compression for non-Steam Folders (beta)": "Оценка сжатия для не-Steam папок (бета)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Быстро анализирует файлы и оценивает степень сжатия без записи на диск. На HDD это может сильно тормозить!",
- "Background Watcher Settings": "Настройки фонового наблюдения",
- "Monitor compressed folders for changes": "Следить за изменениями в сжатых папках",
- "Compress folders:": "Сжимать папки:",
- "Never": "Никогда",
- "When System is Idle": "При простое системы",
- "On Schedule": "По расписанию",
- "On Schedule if system is also idle": "По расписанию (если простой)",
- "every": "каждые",
- "day(s)": "дн.",
- "at": "в",
- "Last ran:": "Последний запуск:",
- "Next scheduled:": "Следующий запуск:",
- "Update Settings": "Настройки обновлений",
- "Check for pre-release updates": "Проверять пре-релизные обновления",
- "UI Settings": "Настройки интерфейса",
- "Always show details on Compression Mode buttons": "Всегда показывать детали на кнопках режимов сжатия",
- "Database Results": "Результаты из базы",
- "Last Fetched:": "Последнее обновление:",
- "Games": "Игры",
- "Search by game name or SteamID...": "Поиск по названию или SteamID...",
- "Sort By": "Сортировать по",
- "Game Name": "Название игры",
- "Ascending": "По возрастанию",
- "Descending": "По убыванию",
- "SteamID": "SteamID",
- "Max Savings": "Макс. экономия",
- "SteamID:": "SteamID:",
- "MODE": "РЕЖИМ",
- "BEFORE": "ДО",
- "AFTER": "ПОСЛЕ",
- "SAVINGS": "ЭКОНОМИЯ",
- "TOTAL RESULTS": "ВСЕГО РЕЗУЛЬТАТОВ",
- "UNCOMPRESSABLE FILETYPES": "НЕСЖИМАЕМЫЕ ТИПЫ ФАЙЛОВ",
- "uncompressed size": "размер без сжатия",
- "contained files": "файлов внутри",
- "Compress Selected": "Сжать выбранное",
- "select a folder": "выберите папку",
- "Version": "Версия",
- "Add Folder to Queue": "Добавить папку в очередь",
- "Compression Mode": "Режим сжатия",
- "Configuration": "Конфигурация",
- "Skip file types specified in settings": "Пропускать типы файлов из настроек",
- "files will be skipped": "файлов будет пропущено",
- "Skip file types likely to compress poorly": "Пропускать плохо сжимаемые файлы",
- "Watch folder for changes": "Следить за изменениями папки",
- "Apply to all": "Применить ко всем",
- "For Steam Games:": "Для игр Steam:",
- "estimate is based on database results": "оценка основана на базе данных",
- "For Non-Steam Folders:": "Для не-Steam папок:",
- "estimate is calculated by block analysis.": "оценка вычисляется поблочным анализом.",
- "If estimation is disabled, this will always show 0%": "Если оценка отключена, здесь всегда будет 0%",
- "skips files based on database results": "пропускает файлы на основе базы данных",
- "skips files based on compression estimate": "пропускает файлы на основе оценки сжатия",
- "Compression Summary": "Сводка сжатия",
- "Before": "До",
- "After": "После",
- "Space Saved": "Места сэкономлено",
- "Files Compressed": "Файлов сжато",
- "Uncompress": "Распаковать",
- "Compress Again": "Сжать снова",
- "Submit Results": "Отправить результаты",
- "Estimated size": "Расчетный размер",
- "Savings": "Экономия",
- "unknown": "неизвестно",
- "Watched Folders": "Наблюдаемые папки",
- "Add": "Добавить",
- "Add a custom folder to the watchlist": "Добавить свою папку в список наблюдения",
- "saved": "сэкономлено",
- "Last analysed": "Последний анализ",
- "Re-analyse all watched folders": "Переанализировать все папки",
- "Cancel Background Compressor": "Отменить фоновое сжатие",
- "Compress All Now": "Сжать всё сейчас",
- "last compressed:": "последнее сжатие:",
- "last modified:": "последнее изменение:",
- "% decayed": "% устарело",
- "Remove from Watchlist": "Удалить из списка",
- "Add to compression queue": "Добавить в очередь сжатия",
- "Re-analyse this folder": "Переанализировать эту папку",
- "Not Compressed": "Не сжато",
- "Compressed": "Сжато",
- "Compress Folder": "Сжать папку",
- "Invalid Folder": "Неверная папка",
- "OK": "ОК",
- "Unknown": "Неизвестно",
- "days ago": "дн. назад",
- "hours ago": "ч. назад",
- "minutes ago": "мин. назад",
- "just now": "только что",
- "Awaiting Compression": "Ожидание сжатия",
- "Analysing": "Анализ",
- "Working": "Обработка",
- "Scheduled Compression Running": "Запущено сжатие по расписанию",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI выполняет плановую задачу и сжимает наблюдаемые папки в фоне",
- "Scheduled Compression Completed": "Плановое сжатие завершено",
- "Next scheduled task is on": "Следующая задача:",
- "Restart as Admin": "Перезапуск от Админа",
- "Insufficient permission to access this folder.": "Недостаточно прав для доступа к папке.",
- "Click to download": "Нажмите для скачивания",
- "Update Available": "Доступно обновление",
- "Failed to submit to wiki": "Не удалось отправить в вики",
- "Please check your internet connection and try again": "Проверьте интернет и попробуйте снова",
- "Submitted to wiki": "Отправлено в вики",
- "Applied to all folders": "Применено ко всем папкам",
- "Compression options have been applied to all folders": "Настройки сжатия применены ко всем папкам",
- "Cannot remove folder": "Нельзя удалить папку",
- "Please wait until the current operation is finished": "Пожалуйста, дождитесь завершения операции",
- "Success": "Успех",
- "Added to Queue": "Добавлено в очередь",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Эта игра использует DirectStorage. Если вы используете эту функцию, не сжимайте эту игру.",
- "You currently have": "Сейчас у вас",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "папок под наблюдением. Закрытие CompactGUI остановит наблюдение.",
- "Are you sure you want to exit?": "Вы уверены, что хотите выйти?",
- "View on GitHub": "Открыть на GitHub",
- "Buy me a coffee": "Купить мне кофе",
- "GB saved": "ГБ сэкономлено",
- "MB saved": "МБ сэкономлено",
- "files being watched": "файлов наблюдается",
- "Closing CompactGUI will stop them from being monitored.": "Закрытие CompactGUI остановит наблюдение."
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "Главная",
+ "Watcher": "Наблюдение",
+ "Compression DB": "БД сжатия",
+ "Admin": "Админ",
+ "Open": "Открыть",
+ "Exit": "Выход",
+ "Settings": "Настройки",
+ "Filetype Management": "Управление типами файлов",
+ "Manage local skipped filetypes": "Управление локальными пропускаемыми типами",
+ "edit": "изм.",
+ "Agression of online skiplist": "Агрессивность онлайн-списка пропуска",
+ "(?)": "(?)",
+ "medium": "средняя",
+ "high": "высокая",
+ "System Integration": "Интеграция в систему",
+ "Add to right-click context menu": "Добавить в контекстное меню",
+ "Add to start menu": "Добавить в меню Пуск",
+ "Show notification on completion": "Уведомлять по завершении",
+ "Start CompactGUI in system tray": "Запускать CompactGUI в трее",
+ "Compression Settings": "Настройки сжатия",
+ "Maximum Compression Threads": "Макс. потоков сжатия",
+ "HDDs only use 1 thread": "HDD используют только 1 поток",
+ "Estimate Compression for non-Steam Folders (beta)": "Оценка сжатия для не-Steam папок (бета)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "Быстро анализирует файлы и оценивает степень сжатия без записи на диск. На HDD это может сильно тормозить!",
+ "Background Watcher Settings": "Настройки фонового наблюдения",
+ "Monitor compressed folders for changes": "Следить за изменениями в сжатых папках",
+ "Compress folders:": "Сжимать папки:",
+ "Never": "Никогда",
+ "When System is Idle": "При простое системы",
+ "On Schedule": "По расписанию",
+ "On Schedule if system is also idle": "По расписанию (если простой)",
+ "every": "каждые",
+ "day(s)": "дн.",
+ "Last ran:": "Последний запуск:",
+ "Next scheduled:": "Следующий запуск:",
+ "Update Settings": "Настройки обновлений",
+ "Check for pre-release updates": "Проверять пре-релизные обновления",
+ "UI Settings": "Настройки интерфейса",
+ "Always show details on Compression Mode buttons": "Всегда показывать детали на кнопках режимов сжатия",
+ "Database Results": "Результаты из базы",
+ "Last Fetched:": "Последнее обновление:",
+ "Games": "Игры",
+ "Search by game name or SteamID...": "Поиск по названию или SteamID...",
+ "Sort By": "Сортировать по",
+ "Game Name": "Название игры",
+ "Ascending": "По возрастанию",
+ "Descending": "По убыванию",
+ "SteamID": "SteamID",
+ "Max Savings": "Макс. экономия",
+ "SteamID:": "SteamID:",
+ "MODE": "РЕЖИМ",
+ "BEFORE": "ДО",
+ "AFTER": "ПОСЛЕ",
+ "SAVINGS": "ЭКОНОМИЯ",
+ "TOTAL RESULTS": "ВСЕГО РЕЗУЛЬТАТОВ",
+ "UNCOMPRESSABLE FILETYPES": "НЕСЖИМАЕМЫЕ ТИПЫ ФАЙЛОВ",
+ "uncompressed size": "размер без сжатия",
+ "contained files": "файлов внутри",
+ "Compress Selected": "Сжать выбранное",
+ "select a folder": "выберите папку",
+ "Version": "Версия",
+ "Add Folder to Queue": "Добавить папку в очередь",
+ "Compression Mode": "Режим сжатия",
+ "Configuration": "Конфигурация",
+ "Skip file types specified in settings": "Пропускать типы файлов из настроек",
+ "files will be skipped": "файлов будет пропущено",
+ "Skip file types likely to compress poorly": "Пропускать плохо сжимаемые файлы",
+ "Watch folder for changes": "Следить за изменениями папки",
+ "Apply to all": "Применить ко всем",
+ "For Steam Games:": "Для игр Steam:",
+ "estimate is based on database results": "оценка основана на базе данных",
+ "For Non-Steam Folders:": "Для не-Steam папок:",
+ "estimate is calculated by block analysis.": "оценка вычисляется поблочным анализом.",
+ "If estimation is disabled, this will always show 0%": "Если оценка отключена, здесь всегда будет 0%",
+ "skips files based on database results": "пропускает файлы на основе базы данных",
+ "skips files based on compression estimate": "пропускает файлы на основе оценки сжатия",
+ "Compression Summary": "Сводка сжатия",
+ "Before": "До",
+ "After": "После",
+ "Space Saved": "Места сэкономлено",
+ "Files Compressed": "Файлов сжато",
+ "Uncompress": "Распаковать",
+ "Compress Again": "Сжать снова",
+ "Submit Results": "Отправить результаты",
+ "Estimated size": "Расчетный размер",
+ "Savings": "Экономия",
+ "unknown": "неизвестно",
+ "Watched Folders": "Наблюдаемые папки",
+ "Add a custom folder to the watchlist": "Добавить свою папку в список наблюдения",
+ "saved": "сэкономлено",
+ "Last analysed": "Последний анализ",
+ "Re-analyse all watched folders": "Переанализировать все папки",
+ "Cancel Background Compressor": "Отменить фоновое сжатие",
+ "Compress All Now": "Сжать всё сейчас",
+ "last compressed:": "последнее сжатие:",
+ "last modified:": "последнее изменение:",
+ "% decayed": "% устарело",
+ "Remove from Watchlist": "Удалить из списка",
+ "Add to compression queue": "Добавить в очередь сжатия",
+ "Re-analyse this folder": "Переанализировать эту папку",
+ "Not Compressed": "Не сжато",
+ "Compressed": "Сжато",
+ "Compress Folder": "Сжать папку",
+ "Invalid Folder": "Неверная папка",
+ "OK": "ОК",
+ "Unknown": "Неизвестно",
+ "days ago": "дн. назад",
+ "hours ago": "ч. назад",
+ "minutes ago": "мин. назад",
+ "just now": "только что",
+ "Awaiting Compression": "Ожидание сжатия",
+ "Analysing": "Анализ",
+ "Working": "Обработка",
+ "Scheduled Compression Running": "Запущено сжатие по расписанию",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI выполняет плановую задачу и сжимает наблюдаемые папки в фоне",
+ "Scheduled Compression Completed": "Плановое сжатие завершено",
+ "Next scheduled task is on": "Следующая задача:",
+ "Restart as Admin": "Перезапуск от Админа",
+ "Insufficient permission to access this folder.": "Недостаточно прав для доступа к папке.",
+ "Click to download": "Нажмите для скачивания",
+ "Update Available": "Доступно обновление",
+ "Failed to submit to wiki": "Не удалось отправить в вики",
+ "Please check your internet connection and try again": "Проверьте интернет и попробуйте снова",
+ "Submitted to wiki": "Отправлено в вики",
+ "Applied to all folders": "Применено ко всем папкам",
+ "Compression options have been applied to all folders": "Настройки сжатия применены ко всем папкам",
+ "Cannot remove folder": "Нельзя удалить папку",
+ "Please wait until the current operation is finished": "Пожалуйста, дождитесь завершения операции",
+ "Success": "Успех",
+ "Added to Queue": "Добавлено в очередь",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "Эта игра использует DirectStorage. Если вы используете эту функцию, не сжимайте эту игру.",
+ "You currently have": "Сейчас у вас",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "папок под наблюдением. Закрытие CompactGUI остановит наблюдение.",
+ "Are you sure you want to exit?": "Вы уверены, что хотите выйти?",
+ "View on GitHub": "Открыть на GitHub",
+ "Buy me a coffee": "Купить мне кофе",
+ "GB saved": "ГБ сэкономлено",
+ "MB saved": "МБ сэкономлено",
+ "files being watched": "файлов наблюдается",
+ "Closing CompactGUI will stop them from being monitored.": "Закрытие CompactGUI остановит наблюдение.",
+ "Language (Requires Restart)": " Язык (Требуется перезагрузка)",
+ "folders being watched": "папок отслеживается",
+ "RestartRequired": "Настройки языка сохранены. Пожалуйста, перезапустите CompactGUI для применения изменений."
+}
\ No newline at end of file
diff --git a/CompactGUI/i18n/zh-CN.json b/CompactGUI/i18n/zh-CN.json
index 6f92d2e..b95bbc9 100644
--- a/CompactGUI/i18n/zh-CN.json
+++ b/CompactGUI/i18n/zh-CN.json
@@ -1,146 +1,146 @@
-{
- "CompactGUI": "CompactGUI",
- "Home": "主页",
- "Watcher": "监控",
- "Compression DB": "压缩数据库",
- "Admin": "管理员",
- "Open": "打开",
- "Exit": "退出",
- "Settings": "设置",
- "Filetype Management": "文件类型管理",
- "Manage local skipped filetypes": "管理本地跳过的文件类型",
- "edit": "编辑",
- "Agression of online skiplist": "在线跳过列表的激进程度",
- "(?)": "(?)",
- "low": "低",
- "medium": "中",
- "high": "高",
- "System Integration": "系统集成",
- "Add to right-click context menu": "添加到右键菜单",
- "Add to start menu": "添加到开始菜单",
- "Show notification on completion": "完成后显示通知",
- "Start CompactGUI in system tray": "在系统托盘启动 CompactGUI",
- "Compression Settings": "压缩设置",
- "Maximum Compression Threads": "最大压缩线程数",
- "HDDs only use 1 thread": "HDD 仅使用 1 个线程",
- "Estimate Compression for non-Steam Folders (beta)": "估算非 Steam 文件夹的压缩率 (测试版)",
- "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "快速解析文件并估算其压缩率,无需写入磁盘。这在 HDD 上可能会非常卡顿!",
- "Background Watcher Settings": "后台监控设置",
- "Monitor compressed folders for changes": "监控已压缩文件夹的更改",
- "Compress folders:": "压缩文件夹:",
- "Never": "从不",
- "When System is Idle": "当系统空闲时",
- "On Schedule": "按计划",
- "On Schedule if system is also idle": "按计划且系统空闲时",
- "every": "每",
- "day(s)": "天",
- "at": "在",
- "Last ran:": "上次运行:",
- "Next scheduled:": "下次计划:",
- "Update Settings": "更新设置",
- "Check for pre-release updates": "检查预发布更新",
- "UI Settings": "界面设置",
- "Always show details on Compression Mode buttons": "始终显示压缩模式按钮的详细信息",
- "Database Results": "数据库结果",
- "Last Fetched:": "上次获取:",
- "Games": "游戏",
- "Search by game name or SteamID...": "按游戏名称或 SteamID 搜索...",
- "Sort By": "排序方式",
- "Game Name": "游戏名称",
- "Ascending": "升序",
- "Descending": "降序",
- "SteamID": "SteamID",
- "Max Savings": "最大节省",
- "SteamID:": "SteamID:",
- "MODE": "模式",
- "BEFORE": "压缩前",
- "AFTER": "压缩后",
- "SAVINGS": "节省",
- "TOTAL RESULTS": "总结果",
- "UNCOMPRESSABLE FILETYPES": "不可压缩的文件类型",
- "uncompressed size": "未压缩大小",
- "contained files": "包含文件",
- "Compress Selected": "压缩选中项",
- "select a folder": "选择文件夹",
- "Version": "版本",
- "Add Folder to Queue": "添加文件夹到队列",
- "Compression Mode": "压缩模式",
- "Configuration": "配置",
- "Skip file types specified in settings": "跳过设置中指定的文件类型",
- "files will be skipped": "个文件将被跳过",
- "Skip file types likely to compress poorly": "跳过可能压缩效果不佳的文件类型",
- "Watch folder for changes": "监控文件夹更改",
- "Apply to all": "应用到所有",
- "For Steam Games:": "对于 Steam 游戏:",
- "estimate is based on database results": "估算是基于数据库结果",
- "For Non-Steam Folders:": "对于非 Steam 文件夹:",
- "estimate is calculated by block analysis.": "估算是通过块分析计算的。",
- "If estimation is disabled, this will always show 0%": "如果禁用估算,这里将始终显示 0%",
- "skips files based on database results": "根据数据库结果跳过文件",
- "skips files based on compression estimate": "根据压缩估算跳过文件",
- "Compression Summary": "压缩摘要",
- "Before": "压缩前",
- "After": "压缩后",
- "Space Saved": "节省空间",
- "Files Compressed": "文件已压缩",
- "Uncompress": "解压缩",
- "Compress Again": "再次压缩",
- "Submit Results": "提交结果",
- "Estimated size": "预估大小",
- "Savings": "节省",
- "unknown": "未知",
- "Watched Folders": "受监控文件夹",
- "Add": "添加",
- "Add a custom folder to the watchlist": "添加自定义文件夹到监控列表",
- "saved": "已节省",
- "Last analysed": "上次分析",
- "Re-analyse all watched folders": "重新分析所有受监控文件夹",
- "Cancel Background Compressor": "取消后台压缩",
- "Compress All Now": "立即全部压缩",
- "last compressed:": "上次压缩:",
- "last modified:": "上次修改:",
- "% decayed": "% 已衰减",
- "Remove from Watchlist": "从监控列表移除",
- "Add to compression queue": "添加到压缩队列",
- "Re-analyse this folder": "重新分析此文件夹",
- "Not Compressed": "未压缩",
- "Compressed": "已压缩",
- "Compress Folder": "压缩文件夹",
- "Invalid Folder": "无效文件夹",
- "OK": "确定",
- "Unknown": "未知",
- "days ago": "天前",
- "hours ago": "小时前",
- "minutes ago": "分钟前",
- "just now": "刚刚",
- "Awaiting Compression": "等待压缩",
- "Analysing": "正在分析",
- "Working": "正在处理",
- "Scheduled Compression Running": "计划任务正在运行",
- "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI 正在运行计划任务,将在后台压缩受监控的文件夹",
- "Scheduled Compression Completed": "计划压缩完成",
- "Next scheduled task is on": "下次计划任务时间:",
- "Restart as Admin": "以管理员身份重启",
- "Insufficient permission to access this folder.": "没有权限访问此文件夹。",
- "Click to download": "点击下载",
- "Update Available": "有可用更新",
- "Failed to submit to wiki": "提交到 Wiki 失败",
- "Please check your internet connection and try again": "请检查您的网络连接并重试",
- "Submitted to wiki": "已提交到 Wiki",
- "Applied to all folders": "已应用到所有文件夹",
- "Compression options have been applied to all folders": "压缩选项已应用到所有文件夹",
- "Cannot remove folder": "无法移除文件夹",
- "Please wait until the current operation is finished": "请等待当前操作完成",
- "Success": "成功",
- "Added to Queue": "已添加到队列",
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "此游戏使用 DirectStorage 技术。如果您正在使用此功能,则不应压缩此游戏。",
- "You currently have": "您当前有",
- "folders being watched. Closing CompactGUI will stop them from being monitored.": "个文件夹正在被监控。关闭 CompactGUI 将停止对它们的监控。",
- "Are you sure you want to exit?": "确定要退出吗?",
- "View on GitHub": "在 GitHub 查看",
- "Buy me a coffee": "请我喝杯咖啡",
- "GB saved": "GB 已节省",
- "MB saved": "MB 已节省",
- "files being watched": "个文件正在被监控",
- "Closing CompactGUI will stop them from being monitored.": "关闭 CompactGUI 将停止监控这些文件。"
-}
+{
+ "CompactGUI": "CompactGUI",
+ "Home": "主页",
+ "Watcher": "监控",
+ "Compression DB": "压缩数据库",
+ "Admin": "管理员",
+ "Open": "打开",
+ "Exit": "退出",
+ "Settings": "设置",
+ "Filetype Management": "文件类型管理",
+ "Manage local skipped filetypes": "管理本地跳过的文件类型",
+ "edit": "编辑",
+ "Agression of online skiplist": "在线跳过列表的激进程度",
+ "(?)": "(?)",
+ "medium": "中",
+ "high": "高",
+ "System Integration": "系统集成",
+ "Add to right-click context menu": "添加到右键菜单",
+ "Add to start menu": "添加到开始菜单",
+ "Show notification on completion": "完成后显示通知",
+ "Start CompactGUI in system tray": "在系统托盘启动 CompactGUI",
+ "Compression Settings": "压缩设置",
+ "Maximum Compression Threads": "最大压缩线程数",
+ "HDDs only use 1 thread": "HDD 仅使用 1 个线程",
+ "Estimate Compression for non-Steam Folders (beta)": "估算非 Steam 文件夹的压缩率 (测试版)",
+ "Quickly parses over files and estimates their compression ratio without writing to disk. This will likely be super laggy on HDDs! ": "快速解析文件并估算其压缩率,无需写入磁盘。这在 HDD 上可能会非常卡顿!",
+ "Background Watcher Settings": "后台监控设置",
+ "Monitor compressed folders for changes": "监控已压缩文件夹的更改",
+ "Compress folders:": "压缩文件夹:",
+ "Never": "从不",
+ "When System is Idle": "当系统空闲时",
+ "On Schedule": "按计划",
+ "On Schedule if system is also idle": "按计划且系统空闲时",
+ "every": "每",
+ "day(s)": "天",
+ "Last ran:": "上次运行:",
+ "Next scheduled:": "下次计划:",
+ "Update Settings": "更新设置",
+ "Check for pre-release updates": "检查预发布更新",
+ "UI Settings": "界面设置",
+ "Always show details on Compression Mode buttons": "始终显示压缩模式按钮的详细信息",
+ "Database Results": "数据库结果",
+ "Last Fetched:": "上次获取:",
+ "Games": "游戏",
+ "Search by game name or SteamID...": "按游戏名称或 SteamID 搜索...",
+ "Sort By": "排序方式",
+ "Game Name": "游戏名称",
+ "Ascending": "升序",
+ "Descending": "降序",
+ "SteamID": "SteamID",
+ "Max Savings": "最大节省",
+ "SteamID:": "SteamID:",
+ "MODE": "模式",
+ "BEFORE": "压缩前",
+ "AFTER": "压缩后",
+ "SAVINGS": "节省",
+ "TOTAL RESULTS": "总结果",
+ "UNCOMPRESSABLE FILETYPES": "不可压缩的文件类型",
+ "uncompressed size": "未压缩大小",
+ "contained files": "包含文件",
+ "Compress Selected": "压缩选中项",
+ "select a folder": "选择文件夹",
+ "Version": "版本",
+ "Add Folder to Queue": "添加文件夹到队列",
+ "Compression Mode": "压缩模式",
+ "Configuration": "配置",
+ "Skip file types specified in settings": "跳过设置中指定的文件类型",
+ "files will be skipped": "个文件将被跳过",
+ "Skip file types likely to compress poorly": "跳过可能压缩效果不佳的文件类型",
+ "Watch folder for changes": "监控文件夹更改",
+ "Apply to all": "应用到所有",
+ "For Steam Games:": "对于 Steam 游戏:",
+ "estimate is based on database results": "估算是基于数据库结果",
+ "For Non-Steam Folders:": "对于非 Steam 文件夹:",
+ "estimate is calculated by block analysis.": "估算是通过块分析计算的。",
+ "If estimation is disabled, this will always show 0%": "如果禁用估算,这里将始终显示 0%",
+ "skips files based on database results": "根据数据库结果跳过文件",
+ "skips files based on compression estimate": "根据压缩估算跳过文件",
+ "Compression Summary": "压缩摘要",
+ "Before": "压缩前",
+ "After": "压缩后",
+ "Space Saved": "节省空间",
+ "Files Compressed": "文件已压缩",
+ "Uncompress": "解压缩",
+ "Compress Again": "再次压缩",
+ "Submit Results": "提交结果",
+ "Estimated size": "预估大小",
+ "Savings": "节省",
+ "unknown": "未知",
+ "Watched Folders": "受监控文件夹",
+ "Add a custom folder to the watchlist": "添加自定义文件夹到监控列表",
+ "saved": "已节省",
+ "Last analysed": "上次分析",
+ "Re-analyse all watched folders": "重新分析所有受监控文件夹",
+ "Cancel Background Compressor": "取消后台压缩",
+ "Compress All Now": "立即全部压缩",
+ "last compressed:": "上次压缩:",
+ "last modified:": "上次修改:",
+ "% decayed": "% 已衰减",
+ "Remove from Watchlist": "从监控列表移除",
+ "Add to compression queue": "添加到压缩队列",
+ "Re-analyse this folder": "重新分析此文件夹",
+ "Not Compressed": "未压缩",
+ "Compressed": "已压缩",
+ "Compress Folder": "压缩文件夹",
+ "Invalid Folder": "无效文件夹",
+ "OK": "确定",
+ "Unknown": "未知",
+ "days ago": "天前",
+ "hours ago": "小时前",
+ "minutes ago": "分钟前",
+ "just now": "刚刚",
+ "Awaiting Compression": "等待压缩",
+ "Analysing": "正在分析",
+ "Working": "正在处理",
+ "Scheduled Compression Running": "计划任务正在运行",
+ "CompactGUI is running a scheduled task and will compress monitored folders in the background": "CompactGUI 正在运行计划任务,将在后台压缩受监控的文件夹",
+ "Scheduled Compression Completed": "计划压缩完成",
+ "Next scheduled task is on": "下次计划任务时间:",
+ "Restart as Admin": "以管理员身份重启",
+ "Insufficient permission to access this folder.": "没有权限访问此文件夹。",
+ "Click to download": "点击下载",
+ "Update Available": "有可用更新",
+ "Failed to submit to wiki": "提交到 Wiki 失败",
+ "Please check your internet connection and try again": "请检查您的网络连接并重试",
+ "Submitted to wiki": "已提交到 Wiki",
+ "Applied to all folders": "已应用到所有文件夹",
+ "Compression options have been applied to all folders": "压缩选项已应用到所有文件夹",
+ "Cannot remove folder": "无法移除文件夹",
+ "Please wait until the current operation is finished": "请等待当前操作完成",
+ "Success": "成功",
+ "Added to Queue": "已添加到队列",
+ "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.": "此游戏使用 DirectStorage 技术。如果您正在使用此功能,则不应压缩此游戏。",
+ "You currently have": "您当前有",
+ "folders being watched. Closing CompactGUI will stop them from being monitored.": "个文件夹正在被监控。关闭 CompactGUI 将停止对它们的监控。",
+ "Are you sure you want to exit?": "确定要退出吗?",
+ "View on GitHub": "在 GitHub 查看",
+ "Buy me a coffee": "请我喝杯咖啡",
+ "GB saved": "GB 已节省",
+ "MB saved": "MB 已节省",
+ "files being watched": "个文件正在被监控",
+ "Closing CompactGUI will stop them from being monitored.": "关闭 CompactGUI 将停止监控这些文件。",
+ "Language (Requires Restart)": " 语言 (需要重启)",
+ "folders being watched": "个文件夹正在被监控",
+ "RestartRequired": "语言设置已保存,请重启软件以生效。"
+}
\ No newline at end of file
From 7f9d6befbee1fc4fc5e550a64d6ecf736d17a93e Mon Sep 17 00:00:00 2001
From: Shadow <124238783+ShadowLoveElysia@users.noreply.github.com>
Date: Mon, 24 Nov 2025 13:04:49 +0800
Subject: [PATCH 4/5] fix some bug
fix some bug
---
CompactGUI/LanguageConfig.vb | 10 +++++--
CompactGUI/TranslationHelper.vb | 52 +++++++++++++++++----------------
2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/CompactGUI/LanguageConfig.vb b/CompactGUI/LanguageConfig.vb
index cde4985..27913aa 100644
--- a/CompactGUI/LanguageConfig.vb
+++ b/CompactGUI/LanguageConfig.vb
@@ -14,7 +14,6 @@ Public Class LanguageConfig
Dim jsonString = JsonSerializer.Serialize(data)
File.WriteAllText(ConfigPath, jsonString)
Catch ex As Exception
- ' Ignore errors
End Try
End Sub
@@ -24,10 +23,15 @@ Public Class LanguageConfig
Dim jsonString = File.ReadAllText(ConfigPath)
Dim data = JsonSerializer.Deserialize(Of ConfigData)(jsonString)
Return If(data IsNot Nothing AndAlso Not String.IsNullOrEmpty(data.LanguageCode), data.LanguageCode, "en-US")
+ Else
+ Dim sysLang = System.Globalization.CultureInfo.CurrentUICulture.Name
+ Dim i18nPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "i18n", $"{sysLang}.json")
+ If File.Exists(i18nPath) Then
+ Return sysLang
+ End If
End If
Catch ex As Exception
- ' Ignore errors
End Try
Return "en-US"
End Function
-End Class
+End Class
\ No newline at end of file
diff --git a/CompactGUI/TranslationHelper.vb b/CompactGUI/TranslationHelper.vb
index 508ad4c..85b72e1 100644
--- a/CompactGUI/TranslationHelper.vb
+++ b/CompactGUI/TranslationHelper.vb
@@ -17,17 +17,13 @@ Public Class TranslationHelper
If _isInitialized Then Return
_isInitialized = True
- ' Check configured language
Dim currentLang = LanguageConfig.GetLanguage()
- ' Only proceed if language is NOT en-US (default)
If currentLang <> "en-US" Then
- ' Try to load language file from i18n folder
Dim langFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "i18n", $"{currentLang}.json")
If File.Exists(langFile) Then
LoadLanguageFile(langFile)
- ' Register global loaded events ONLY if translation is enabled
EventManager.RegisterClassHandler(GetType(FrameworkElement), FrameworkElement.LoadedEvent, New RoutedEventHandler(AddressOf OnElementLoaded))
EventManager.RegisterClassHandler(GetType(FrameworkContentElement), FrameworkContentElement.LoadedEvent, New RoutedEventHandler(AddressOf OnElementLoaded))
End If
@@ -46,7 +42,6 @@ Public Class TranslationHelper
End Try
End Sub
- ' Empty stub for compatibility
Public Shared Sub TranslateWindow(obj As DependencyObject)
End Sub
@@ -54,62 +49,74 @@ Public Class TranslationHelper
Dim element As DependencyObject = TryCast(sender, DependencyObject)
If element Is Nothing Then Return
- ' Use ContextIdle priority to ensure the visual tree is populated and properties are set
If TypeOf element Is DispatcherObject Then
DirectCast(element, DispatcherObject).Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, Sub()
Try
RecursiveTranslate(element)
Catch ex As Exception
- ' Ignore errors during recursive translation
End Try
End Sub)
End If
End Sub
- ' Text normalization: remove newlines, tabs, and merge spaces
Private Shared Function NormalizeText(input As String) As String
If String.IsNullOrEmpty(input) Then Return ""
Dim normalized As String = Regex.Replace(input, "\s+", " ")
Return normalized.Trim()
End Function
- ' Core translation logic with Exact and Partial matching
+ Public Shared Function GetString(key As String) As String
+ If Translations.ContainsKey(key) Then
+ Return Translations(key)
+ End If
+ Return key
+ End Function
+
+ Public Shared Function GetStringForLanguage(langCode As String, key As String) As String
+ Dim filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "i18n", $"{langCode}.json")
+ If File.Exists(filePath) Then
+ Try
+ Dim jsonContent = File.ReadAllText(filePath)
+ Dim tempDict = JsonSerializer.Deserialize(Of Dictionary(Of String, String))(jsonContent)
+ If tempDict IsNot Nothing AndAlso tempDict.ContainsKey(key) Then
+ Return tempDict(key)
+ End If
+ Catch
+ End Try
+ End If
+
+ If langCode = "en-US" Then Return key
+
+ Return GetString(key)
+ End Function
+
Private Shared Sub TryReplace(original As String, applyAction As Action(Of String))
If String.IsNullOrWhiteSpace(original) Then Return
Dim normalizedText As String = NormalizeText(original)
Dim found As Boolean = False
- ' 1. Exact Match (Priority)
If Translations.ContainsKey(normalizedText) Then
applyAction(Translations(normalizedText))
found = True
Else
- ' 2. Partial / Fuzzy Match (for dynamic content like "6.52 GB saved")
For Each kvp In Translations
- ' Only attempt match if the key is meaningful (length > 1) to avoid false positives
- If kvp.Key.Length > 1 AndAlso normalizedText.Contains(kvp.Key) Then
+ If kvp.Key.Length > 3 AndAlso normalizedText.Contains(kvp.Key) Then
Dim translated As String = normalizedText.Replace(kvp.Key, kvp.Value)
- ' Only apply if replacement actually happened
If translated <> normalizedText Then
applyAction(translated)
found = True
- Exit For ' Apply the first matching translation found
+ Exit For
End If
End If
Next
End If
-
- ' Debug log
- ' System.Diagnostics.Debug.WriteLine("Scanning: [" & normalizedText & "] -> " & If(found, "Translated", "Unmatched"))
End Sub
- ' Recursive Reflection Translation
Private Shared Sub RecursiveTranslate(element As Object)
If element Is Nothing Then Return
- ' 1. Reflection scan for common text properties
Dim targetProperties As String() = {"Text", "Content", "Header", "Title", "Description", "Label", "ToolTip", "PlaceholderText"}
Dim type As Type = element.GetType()
@@ -118,10 +125,8 @@ Public Class TranslationHelper
If prop IsNot Nothing AndAlso prop.CanRead AndAlso prop.CanWrite Then
Try
Dim val = prop.GetValue(element)
- ' If property is String -> Try translate
If TypeOf val Is String Then
TryReplace(CStr(val), Sub(newVal) prop.SetValue(element, newVal))
- ' If property is Object (e.g. StackPanel inside Content) -> Recurse
ElseIf val IsNot Nothing AndAlso Not TypeOf val Is ValueType Then
RecursiveTranslate(val)
End If
@@ -130,7 +135,6 @@ Public Class TranslationHelper
End If
Next
- ' 2. Special handling for TextBlock Inlines (Run elements)
If TypeOf element Is TextBlock Then
Dim tb = DirectCast(element, TextBlock)
For Each inline In tb.Inlines
@@ -140,10 +144,8 @@ Public Class TranslationHelper
Next
End If
- ' 3. Deep traversal of Visual Tree children
If TypeOf element Is DependencyObject Then
Dim depObj = DirectCast(element, DependencyObject)
- ' Only traverse Visual or Visual3D to avoid issues with logical-only elements
If TypeOf depObj Is Visual OrElse TypeOf depObj Is System.Windows.Media.Media3D.Visual3D Then
Dim childCount = VisualTreeHelper.GetChildrenCount(depObj)
For i = 0 To childCount - 1
From a4093aebc8f68a14804f8ceb2bc305f4912b9a5e Mon Sep 17 00:00:00 2001
From: Shadow <124238783+ShadowLoveElysia@users.noreply.github.com>
Date: Mon, 24 Nov 2025 13:05:26 +0800
Subject: [PATCH 5/5] fix some bug
fix some bug
---
CompactGUI/Views/SettingsPage.xaml.vb | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index c912722..f58961f 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -11,7 +11,6 @@ Public Class SettingsPage
ScrollViewer.SetCanContentScroll(Me, False)
- ' Initialize Language Selection
Dim currentLang = LanguageConfig.GetLanguage()
For i As Integer = 0 To UiLanguageComboBox.Items.Count - 1
@@ -22,7 +21,6 @@ Public Class SettingsPage
End If
Next
- ' Fallback to English if no match
If UiLanguageComboBox.SelectedIndex = -1 Then
UiLanguageComboBox.SelectedIndex = 0
End If
@@ -38,11 +36,16 @@ Public Class SettingsPage
Dim selectedItem = CType(UiLanguageComboBox.SelectedItem, ComboBoxItem)
Dim langCode = selectedItem.Tag.ToString()
- ' Avoid triggering on initial load if it matches
Dim currentSaved = LanguageConfig.GetLanguage()
If langCode <> currentSaved Then
LanguageConfig.SaveLanguage(langCode)
- MessageBox.Show("Language settings saved. Please restart CompactGUI to apply changes." & vbCrLf & "语言设置已保存,请重启软件以生效。", "CompactGUI", MessageBoxButton.OK, MessageBoxImage.Information)
+
+ Dim msg = TranslationHelper.GetStringForLanguage(langCode, "RestartRequired")
+ If msg = "RestartRequired" Then
+ msg = "Language settings saved. Please restart CompactGUI to apply changes."
+ End If
+
+ MessageBox.Show(msg, "CompactGUI", MessageBoxButton.OK, MessageBoxImage.Information)
End If
End Sub