From 4564e21ca8fd7488d07cdc83682082159a6975de Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Mon, 29 Dec 2025 15:42:38 +0800
Subject: [PATCH 1/9] NuGet
---
CompactGUI/CompactGUI.vbproj | 1 +
1 file changed, 1 insertion(+)
diff --git a/CompactGUI/CompactGUI.vbproj b/CompactGUI/CompactGUI.vbproj
index babeb9f..d069f3f 100644
--- a/CompactGUI/CompactGUI.vbproj
+++ b/CompactGUI/CompactGUI.vbproj
@@ -46,6 +46,7 @@
+
From f30d368fa68e4272efa2be39261a974c2d1959bc Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Tue, 30 Dec 2025 00:15:15 +0800
Subject: [PATCH 2/9] i18n support
---
CompactGUI/Application.xaml.vb | 6 +-
CompactGUI/CompactGUI.vbproj | 17 +-
.../Components/Converters/IValueConverters.vb | 16 +-
CompactGUI/LanguageHelper.vb | 181 ++++
.../Components/CompressionMode_Radio.xaml | 10 +-
.../Views/Components/FolderWatcherCard.xaml | 24 +-
.../Components/FolderWatcherCard.xaml.vb | 5 +-
CompactGUI/Views/Pages/DatabasePage.xaml | 231 +++--
CompactGUI/Views/Pages/FolderView.xaml | 6 +-
CompactGUI/Views/Pages/HomePage.xaml | 12 +-
.../Views/Pages/PendingCompression.xaml | 50 +-
CompactGUI/Views/Pages/ResultsTemplate.xaml | 24 +-
CompactGUI/Views/Pages/WatcherPage.xaml | 5 +-
CompactGUI/Views/SettingsPage.xaml | 106 ++-
CompactGUI/Views/SettingsPage.xaml.vb | 57 +-
CompactGUI/i18n/i18n.Designer.vb | 845 ++++++++++++++++++
CompactGUI/i18n/i18n.resx | 388 ++++++++
CompactGUI/i18n/i18n.zh-CN.resx | 367 ++++++++
ResXManager.config.xml | 4 +
19 files changed, 2123 insertions(+), 231 deletions(-)
create mode 100644 CompactGUI/LanguageHelper.vb
create mode 100644 CompactGUI/i18n/i18n.Designer.vb
create mode 100644 CompactGUI/i18n/i18n.resx
create mode 100644 CompactGUI/i18n/i18n.zh-CN.resx
create mode 100644 ResXManager.config.xml
diff --git a/CompactGUI/Application.xaml.vb b/CompactGUI/Application.xaml.vb
index 9c46d71..e5c360c 100644
--- a/CompactGUI/Application.xaml.vb
+++ b/CompactGUI/Application.xaml.vb
@@ -1,4 +1,4 @@
-Imports System.IO
+Imports System.IO
Imports System.IO.Pipes
Imports System.Threading
Imports System.Windows.Threading
@@ -31,7 +31,11 @@ Partial Public Class Application
End Sub
+ Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
+ ' 启动时调用语言配置
+ LanguageHelper.Initialize()
+ End Sub
Private Shared Sub InitializeHost()
_host = Host.CreateDefaultBuilder() _
diff --git a/CompactGUI/CompactGUI.vbproj b/CompactGUI/CompactGUI.vbproj
index d069f3f..038ce5a 100644
--- a/CompactGUI/CompactGUI.vbproj
+++ b/CompactGUI/CompactGUI.vbproj
@@ -29,7 +29,6 @@
none
-
@@ -72,6 +71,22 @@
+
+
+ True
+ True
+ i18n.resx
+
+
+
+
+
+ i18n
+ PublicResXFileCodeGenerator
+ i18n.Designer.vb
+
+
+
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index eef23bb..882398f 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -1,4 +1,4 @@
-Imports System.Globalization
+Imports System.Globalization
Public Class DecimalToPercentageConverter : Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
@@ -88,20 +88,24 @@ End Class
Public Class RelativeDateConverter : Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
+ If value Is Nothing Or Not TypeOf value Is DateTime Then
+ Return LanguageHelper.GetString("RelativeTimeUnknown")
+ End If
+
Dim dt = CType(value, DateTime)
Dim ts As TimeSpan = DateTime.Now - dt
If ts > TimeSpan.FromDays(19000) Then
- Return String.Format("Unknown")
+ Return LanguageHelper.GetString("RelativeTimeUnknown")
End If
If ts > TimeSpan.FromDays(2) Then
- Return String.Format("{0:0} days ago", ts.TotalDays)
+ Return String.Format(LanguageHelper.GetString("RelativeTimeDaysAgo"), ts.TotalDays)
ElseIf ts > TimeSpan.FromHours(2) Then
- Return String.Format("{0:0} hours ago", ts.TotalHours)
+ Return String.Format(LanguageHelper.GetString("RelativeTimeHoursAgo"), ts.TotalHours)
ElseIf ts > TimeSpan.FromMinutes(2) Then
- Return String.Format("{0:0} minutes ago", ts.TotalMinutes)
+ Return String.Format(LanguageHelper.GetString("RelativeTimeMinutesAgo"), ts.TotalMinutes)
Else
- Return "just now"
+ Return LanguageHelper.GetString("RelativeTimeJustNow")
End If
End Function
diff --git a/CompactGUI/LanguageHelper.vb b/CompactGUI/LanguageHelper.vb
new file mode 100644
index 0000000..7c90020
--- /dev/null
+++ b/CompactGUI/LanguageHelper.vb
@@ -0,0 +1,181 @@
+Imports System.Globalization
+Imports System.Resources
+Imports System.Threading
+Imports System.Windows.Markup
+Imports System.Windows.Data
+Imports System.Reflection
+
+Public Class LanguageHelper
+ ' 支持的语言列表
+ Private Shared ReadOnly SupportedCultures As String() = {"en-US", "zh-CN"}
+ Private Shared resourceManager As ResourceManager = i18n.i18n.ResourceManager
+ Private Shared currentCulture As CultureInfo = Nothing
+
+ Public Shared Function GetText(key As String) As String
+ Return GetString(key)
+ End Function
+
+ Public Shared Sub Initialize()
+ Dim savedLanguage As String = ReadAppConfig("language")
+ If Not String.IsNullOrEmpty(savedLanguage) AndAlso SupportedCultures.Contains(savedLanguage) Then
+ ApplyCulture(savedLanguage)
+ Else
+ SetDefaultLanguage()
+ End If
+ End Sub
+
+ Public Shared Sub ChangeLanguage()
+ If currentCulture Is Nothing Then
+ currentCulture = Thread.CurrentThread.CurrentUICulture
+ End If
+ Dim currentLang As String = currentCulture.Name
+ Dim nextLang As String = GetNextLanguage(currentLang)
+
+ ApplyCulture(nextLang)
+ WriteAppConfig("language", nextLang)
+ End Sub
+
+ Public Shared Function GetString(key As String, ParamArray args As Object()) As String
+ Try
+ Dim cultureToUse = If(currentCulture, Thread.CurrentThread.CurrentUICulture)
+ Dim rawValue As String = resourceManager.GetString(key, cultureToUse)
+
+ If String.IsNullOrEmpty(rawValue) Then
+ Return key
+ ElseIf args IsNot Nothing AndAlso args.Length > 0 Then
+ Return String.Format(cultureToUse, rawValue, args)
+ Else
+ Return rawValue
+ End If
+ Catch ex As Exception
+ Debug.WriteLine($"获取多语言文本失败:{key},错误:{ex.Message}")
+ Return key
+ End Try
+ End Function
+
+ Public Shared Sub ApplyCulture(cultureName As String)
+ Try
+ Dim culture As New CultureInfo(cultureName)
+ Thread.CurrentThread.CurrentUICulture = culture
+ Thread.CurrentThread.CurrentCulture = culture
+ currentCulture = culture
+
+ ' 额外:如果是WPF/WinForms,刷新界面(可选)
+ ' WinForms示例:Application.CurrentCulture = culture
+ ' WPF示例:FrameworkElement.LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(culture.IetfLanguageTag)))
+ Catch ex As Exception
+ Debug.WriteLine($"应用语言失败:{cultureName},错误:{ex.Message}")
+ SetDefaultLanguage()
+ End Try
+ End Sub
+
+ Private Shared Function GetNextLanguage(currentLanguage As String) As String
+ Dim currentTwoLetter = New CultureInfo(currentLanguage).TwoLetterISOLanguageName
+ For i As Integer = 0 To SupportedCultures.Length - 1
+ Dim langTwoLetter = New CultureInfo(SupportedCultures(i)).TwoLetterISOLanguageName
+ If langTwoLetter = currentTwoLetter Then
+ Return SupportedCultures((i + 1) Mod SupportedCultures.Length)
+ End If
+ Next
+ Return SupportedCultures(0)
+ End Function
+
+ Private Shared Sub SetDefaultLanguage()
+ ' 根据系统语言设置默认语言
+ Dim langMapping As New Dictionary(Of String, String) From {
+ {"en", "en-US"},
+ {"zh", "zh-CN"}
+ }
+ '{"ja", "ja-JP"},
+ '{"ko", "ko-KR"},
+ '{"fr", "fr-FR"},
+ '{"de", "de-DE"},
+ '{"es", "es-ES"},
+ '{"ru", "ru-RU"}
+
+ Dim systemLang As String = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower()
+ Dim defaultLang As String = If(langMapping.ContainsKey(systemLang), langMapping(systemLang), "en-US")
+
+ ' 特殊处理中文简/繁
+ 'If systemLang = "zh" Then
+ ' If Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-TW") Then
+ ' defaultLang = "zh-TW"
+ ' ElseIf Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-HK") Then
+ ' defaultLang = "zh-HK"
+ ' End If
+ 'End If
+
+ '@@@
+ 'Dim systemLang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName
+ 'Dim defaultLang As String = "en-US"
+
+ ''匹配多语言
+ 'Select Case systemLang.ToLower()
+ ' Case "zh" ' 中文
+ ' defaultLang = "zh-CN"
+ ' Case "en" ' 英文
+ ' defaultLang = "en-US"
+ ' Case "ja" ' 日语
+ ' defaultLang = "ja-JP"
+ ' Case "ko" ' 韩语
+ ' defaultLang = "ko-KR"
+ ' Case "fr" ' 法语
+ ' defaultLang = "fr-FR"
+ ' Case "de" ' 德语
+ ' defaultLang = "de-DE"
+ ' Case "es" ' 西班牙语
+ ' defaultLang = "es-ES"
+ ' Case "ru" ' 俄语
+ ' defaultLang = "ru-RU"
+ ' Case Else ' 未匹配语言,默认英文
+ ' defaultLang = "en-US"
+ 'End Select
+
+ ApplyCulture(defaultLang)
+ WriteAppConfig("language", defaultLang)
+ End Sub
+
+ Public Shared Function GetCurrentLanguage() As String
+ Return If(currentCulture, Thread.CurrentThread.CurrentUICulture).Name
+ End Function
+
+ Public Shared Function ReadAppConfig(key As String) As String
+ Try
+ Dim config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
+ Return If(config.AppSettings.Settings(key)?.Value, String.Empty)
+ Catch ex As Exception
+ Debug.WriteLine($"读取配置失败:{key},错误:{ex.Message}")
+ Return String.Empty
+ End Try
+ End Function
+
+ Public Shared Sub WriteAppConfig(key As String, value As String)
+ Try
+ Dim config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
+ If config.AppSettings.Settings(key) IsNot Nothing Then
+ config.AppSettings.Settings(key).Value = value
+ Else
+ config.AppSettings.Settings.Add(key, value)
+ End If
+ config.Save(System.Configuration.ConfigurationSaveMode.Modified)
+ System.Configuration.ConfigurationManager.RefreshSection("appSettings")
+ Catch ex As Exception
+ Debug.WriteLine($"写入配置失败:{key},错误:{ex.Message}")
+ End Try
+ End Sub
+End Class
+
+
+Public Class LocalizeExtension
+ Inherits MarkupExtension
+
+ Private _key As String
+
+ Public Sub New(key As String)
+ _key = key
+ End Sub
+
+ Public Overrides Function ProvideValue(serviceProvider As IServiceProvider) As Object
+ Return LanguageHelper.GetString(_key)
+ End Function
+End Class
\ No newline at end of file
diff --git a/CompactGUI/Views/Components/CompressionMode_Radio.xaml b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
index 9cbb4ea..a4d813f 100644
--- a/CompactGUI/Views/Components/CompressionMode_Radio.xaml
+++ b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
@@ -1,4 +1,4 @@
-
-
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml b/CompactGUI/Views/Components/FolderWatcherCard.xaml
index 287c234..0944e2d 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml
@@ -1,4 +1,4 @@
-
-
-
+
-
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb b/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
index d0abc1f..97abf6b 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
@@ -1,4 +1,4 @@
-Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Animation
Public Class FolderWatcherCard : Inherits UserControl
Private currentlyExpandedBorder As Border = Nothing
@@ -108,4 +108,7 @@ Public Class FolderWatcherCard : Inherits UserControl
End If
End Sub
+ Private Sub UiWatcherListView_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
+
+ End Sub
End Class
diff --git a/CompactGUI/Views/Pages/DatabasePage.xaml b/CompactGUI/Views/Pages/DatabasePage.xaml
index 6cb309d..009a365 100644
--- a/CompactGUI/Views/Pages/DatabasePage.xaml
+++ b/CompactGUI/Views/Pages/DatabasePage.xaml
@@ -1,4 +1,4 @@
-
-
-
-
-
-
+
+
@@ -34,7 +32,7 @@
-->
-
+
@@ -43,41 +41,42 @@
-
+
-
+
-
-
-
+
+
-
+
-
+
-
+
@@ -141,98 +140,98 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
diff --git a/CompactGUI/Views/Pages/FolderView.xaml b/CompactGUI/Views/Pages/FolderView.xaml
index 783bc61..3403b67 100644
--- a/CompactGUI/Views/Pages/FolderView.xaml
+++ b/CompactGUI/Views/Pages/FolderView.xaml
@@ -1,4 +1,4 @@
-
-
+
-
+
diff --git a/CompactGUI/Views/Pages/HomePage.xaml b/CompactGUI/Views/Pages/HomePage.xaml
index ba83406..fa93f12 100644
--- a/CompactGUI/Views/Pages/HomePage.xaml
+++ b/CompactGUI/Views/Pages/HomePage.xaml
@@ -1,4 +1,4 @@
-
-
-
+
@@ -174,7 +175,8 @@
Background="{StaticResource CardBackgroundFillColorSecondaryBrush}">
-
diff --git a/CompactGUI/Views/Pages/PendingCompression.xaml b/CompactGUI/Views/Pages/PendingCompression.xaml
index 8c82aa8..b889cc5 100644
--- a/CompactGUI/Views/Pages/PendingCompression.xaml
+++ b/CompactGUI/Views/Pages/PendingCompression.xaml
@@ -1,4 +1,4 @@
-
-
@@ -30,7 +31,8 @@
-->
-
@@ -122,24 +127,19 @@
- Skip file types likely to compress poorly
+
-
-
-
- For Steam Games:
- skips files based on database results
-
- For Non-Steam Folders:
- skips files based on compression estimate
-
-
+ Cursor="Hand" Foreground="#FF98A9B9" TextDecorations="Underline">
+
+
+
+
+
@@ -160,7 +160,8 @@
-
@@ -168,7 +169,8 @@
-
-
@@ -43,7 +44,7 @@
-
@@ -54,7 +55,7 @@
-
@@ -70,7 +71,7 @@
Margin="0,0,20,20" Padding="10,20,10,20"
Background="#30FFFFFF" BorderThickness="0">
-
-
-
-
-
-
+ Title="{local:Localize PageWatcherName}"
+ d:Title="WatcherPage">
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index cf52af3..3b134af 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -1,4 +1,4 @@
-
-
@@ -95,7 +96,8 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -114,27 +116,29 @@
-
+
-
-
@@ -145,15 +149,15 @@
Grid.Row="2" Grid.Column="1"
Foreground="#98A9B9" IsEnabled="False" SelectedIndex="0">
-
-
-
@@ -171,7 +175,8 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -180,19 +185,23 @@
@@ -210,7 +219,8 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -234,7 +244,7 @@
-
+
@@ -251,13 +261,15 @@
@@ -282,7 +294,8 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -292,7 +305,8 @@
@@ -306,7 +320,7 @@
-
+
-
-
-
-
@@ -398,7 +413,8 @@
@@ -414,22 +430,36 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index 6524a37..224452a 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -1,18 +1,51 @@
-Public Class SettingsPage
-
- Sub New(settingsviewmodel As SettingsViewModel)
-
- InitializeComponent()
-
-
- DataContext = settingsviewmodel
-
+Imports System.Windows.Data
+
+Partial Public Class SettingsPage
+ Public Property LanguageChangedLabelContent As String
+ Get
+ Return CType(GetValue(LanguageChangedLabelContentProperty), String)
+ End Get
+ Set(value As String)
+ SetValue(LanguageChangedLabelContentProperty, value)
+ End Set
+ End Property
+
+ Public Shared ReadOnly LanguageChangedLabelContentProperty As DependencyProperty =
+ DependencyProperty.Register("SettingsUiSettingsLanguageChangedLabel", GetType(String), GetType(SettingsPage),
+ New PropertyMetadata("Language (Requires Restart)"))
+
+ Private Sub SettingsPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
+ ' 设置当前选择的语言
+ Dim currentLanguage As String = LanguageHelper.GetCurrentLanguage()
+
+ For i As Integer = 0 To UiLanguageComboBox.Items.Count - 1
+ Dim item As ComboBoxItem = CType(UiLanguageComboBox.Items(i), ComboBoxItem)
+ If CStr(item.Tag) = currentLanguage Then
+ UiLanguageComboBox.SelectedIndex = i
+ Exit For
+ End If
+ Next
+ End Sub
- ScrollViewer.SetCanContentScroll(Me, False)
+ Private Sub UpdateLocalizedText()
+ ' 更新语言标签内容
+ LanguageChangedLabelContent = LanguageHelper.GetString("SettingsUiSettingsLanguageChangedLabel")
End Sub
+ Private Sub UiLanguageComboBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
+ Dim comboBox As ComboBox = CType(sender, ComboBox)
+ If comboBox.IsDropDownOpen AndAlso UiLanguageComboBox.SelectedItem IsNot Nothing Then
+ Dim selectedLanguage As ComboBoxItem = CType(UiLanguageComboBox.SelectedItem, ComboBoxItem)
+ Dim languageCode As String = CStr(selectedLanguage.Tag)
+ LanguageHelper.ApplyCulture(languageCode)
+ LanguageHelper.WriteAppConfig("language", languageCode)
+ UpdateLocalizedText()
-
-End Class
+ MessageBox.Show(LanguageHelper.GetString("SettingsUiSettingsLanguageChangedMsg"),
+ LanguageHelper.GetString("SettingsUiSettingsLanguageChangeTitle"),
+ MessageBoxButton.OK, MessageBoxImage.Information)
+ End If
+ End Sub
+End Class
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
new file mode 100644
index 0000000..9fda1d7
--- /dev/null
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -0,0 +1,845 @@
+'------------------------------------------------------------------------------
+'
+' 此代码由工具生成。
+' 运行时版本:4.0.30319.42000
+'
+' 对此文件的更改可能会导致不正确的行为,并且如果
+' 重新生成代码,这些更改将会丢失。
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace i18n
+
+ '此类是由 StronglyTypedResourceBuilder
+ '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ '(以 /str 作为命令选项),或重新生成 VS 项目。
+ '''
+ ''' 一个强类型的资源类,用于查找本地化的字符串等。
+ '''
+ _
+ Public Class i18n
+
+ Private Shared resourceMan As Global.System.Resources.ResourceManager
+
+ Private Shared resourceCulture As Global.System.Globalization.CultureInfo
+
+ _
+ Friend Sub New()
+ MyBase.New
+ End Sub
+
+ '''
+ ''' 返回此类使用的缓存的 ResourceManager 实例。
+ '''
+ _
+ Public Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CompactGUI.i18n", GetType(i18n).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' 重写当前线程的 CurrentUICulture 属性,对
+ ''' 使用此强类型资源类的所有资源查找执行重写。
+ '''
+ _
+ Public Shared Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+
+ '''
+ ''' 查找类似 Estimated size 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property CompressionModeRadioEstimatedSize() As String
+ Get
+ Return ResourceManager.GetString("CompressionModeRadioEstimatedSize", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Savings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property CompressionModeRadioSavings() As String
+ Get
+ Return ResourceManager.GetString("CompressionModeRadioSavings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 unknown 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property CompressionModeRadioUnknown() As String
+ Get
+ Return ResourceManager.GetString("CompressionModeRadioUnknown", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Ascending 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePage_Ascending() As String
+ Get
+ Return ResourceManager.GetString("DatabasePage_Ascending", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Descending 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePage_Descending() As String
+ Get
+ Return ResourceManager.GetString("DatabasePage_Descending", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 AFTER 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePageAFTER() As String
+ Get
+ Return ResourceManager.GetString("DatabasePageAFTER", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 BEFORE 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePageBEFORE() As String
+ Get
+ Return ResourceManager.GetString("DatabasePageBEFORE", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 MODE 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePageMODE() As String
+ Get
+ Return ResourceManager.GetString("DatabasePageMODE", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 SAVINGS 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePageSAVINGS() As String
+ Get
+ Return ResourceManager.GetString("DatabasePageSAVINGS", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 TOTAL RESULTS 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabasePageTOTALRESULTS() As String
+ Get
+ Return ResourceManager.GetString("DatabasePageTOTALRESULTS", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Games 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsGames() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsGames", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Search by game name or SteamID... 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsSearchSteamID() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsSearchSteamID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Sort By 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsSort() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsSort", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Game Name 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsSortGameName() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsSortGameName", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Max Savings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsSortMaxSavings() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsSortMaxSavings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 SteamID 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseResultsSortSteamID() As String
+ Get
+ Return ResourceManager.GetString("DatabaseResultsSortSteamID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 contained files 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderViewContainedFiles() As String
+ Get
+ Return ResourceManager.GetString("FolderViewContainedFiles", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 uncompressed size 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderViewUncompressedSize() As String
+ Get
+ Return ResourceManager.GetString("FolderViewUncompressedSize", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Cancel Background Compressor 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderWatcherCardCancelBackgroundCompressor() As String
+ Get
+ Return ResourceManager.GetString("FolderWatcherCardCancelBackgroundCompressor", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compress All Now 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderWatcherCardCompressAllNow() As String
+ Get
+ Return ResourceManager.GetString("FolderWatcherCardCompressAllNow", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Last analysed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderWatcherCardLastAnalysed() As String
+ Get
+ Return ResourceManager.GetString("FolderWatcherCardLastAnalysed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 saved 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property FolderWatcherCardSaved() As String
+ Get
+ Return ResourceManager.GetString("FolderWatcherCardSaved", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add Folder to Queue 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property HomePageAddFolder() As String
+ Get
+ Return ResourceManager.GetString("HomePageAddFolder", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compress Selected 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property HomePageCompressSelected() As String
+ Get
+ Return ResourceManager.GetString("HomePageCompressSelected", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Results State 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property HomePageResultsState() As String
+ Get
+ Return ResourceManager.GetString("HomePageResultsState", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Working 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property HomePageWorking() As String
+ Get
+ Return ResourceManager.GetString("HomePageWorking", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Welcome 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property MessageWelcome() As String
+ Get
+ Return ResourceManager.GetString("MessageWelcome", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Database Results 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PageDatabaseResults() As String
+ Get
+ Return ResourceManager.GetString("PageDatabaseResults", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Watched Folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PageFolderWatcherCardWatchedFoldersName() As String
+ Get
+ Return ResourceManager.GetString("PageFolderWatcherCardWatchedFoldersName", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PageSettingsName() As String
+ Get
+ Return ResourceManager.GetString("PageSettingsName", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 WatcherPage 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PageWatcherName() As String
+ Get
+ Return ResourceManager.GetString("PageWatcherName", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Apply to all 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionApplyAll() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionApplyAll", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression Mode 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionCompressionMode() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionCompressionMode", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Configuration 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionConfiguration() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionConfiguration", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Skip file types likely to compress poorly 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesLikelyPoorly() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesLikelyPoorly", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 For Steam Games:
+ '''skips files based on database results
+ '''
+ '''For Non-Steam Folders:
+ '''skips files based on compression estimate 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesLikelyPoorlyTip() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesLikelyPoorlyTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Skip file types specified in settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesSpecified() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesSpecified", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 LZX 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionModeLZX() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionModeLZX", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 XPRESS 4K 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionModeXPRESS4K() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionModeXPRESS4K", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Watch folder for changes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionWatchFolderChanges() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionWatchFolderChanges", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 XPRESS 16K 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionXPRESSMode16K() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionXPRESSMode16K", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 XPRESS 8K 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property PendingCompressionXPRESSMode8K() As String
+ Get
+ Return ResourceManager.GetString("PendingCompressionXPRESSMode8K", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 {0:0} days ago 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property RelativeTimeDaysAgo() As String
+ Get
+ Return ResourceManager.GetString("RelativeTimeDaysAgo", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 {0:0} hours ago 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property RelativeTimeHoursAgo() As String
+ Get
+ Return ResourceManager.GetString("RelativeTimeHoursAgo", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 just now 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property RelativeTimeJustNow() As String
+ Get
+ Return ResourceManager.GetString("RelativeTimeJustNow", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 {0:0} minutes ago 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property RelativeTimeMinutesAgo() As String
+ Get
+ Return ResourceManager.GetString("RelativeTimeMinutesAgo", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Unknown 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property RelativeTimeUnknown() As String
+ Get
+ Return ResourceManager.GetString("RelativeTimeUnknown", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 After 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateAfter() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateAfter", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Before 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateBefore() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateBefore", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compress Again 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateCompressAgain() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateCompressAgain", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression Mode 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateCompressionMode() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateCompressionMode", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression Summary 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateCompressionSummary() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateCompressionSummary", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Files Compressed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateFilesCompressed() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateFilesCompressed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Space Saved 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateSpaceSaved() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateSpaceSaved", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Submit Results 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateSubmitResults() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateSubmitResults", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Uncompress 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property ResultsTemplateUncompress() As String
+ Get
+ Return ResourceManager.GetString("ResultsTemplateUncompress", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Background Watcher Settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettings() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compress folders: 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFolders() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFolders", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Monitor compressed folders for changes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsFoldersChanges() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsFoldersChanges", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 at 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeAt() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeAt", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 day(s) 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeDay() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeDay", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 every 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeEvery() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeEvery", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression Settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsCompressionSettingsCompressionSettings() As String
+ Get
+ Return ResourceManager.GetString("SettingsCompressionSettingsCompressionSettings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 HDDs only use 1 thread 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsCompressionSettingsHDDThread() As String
+ Get
+ Return ResourceManager.GetString("SettingsCompressionSettingsHDDThread", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Maximum Compression Threads 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsCompressionSettingsMaxThreads() As String
+ Get
+ Return ResourceManager.GetString("SettingsCompressionSettingsMaxThreads", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Estimate Compression for non-Steam Folders (beta) 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsCompressionSettingsNonSteamFolders() As String
+ Get
+ Return ResourceManager.GetString("SettingsCompressionSettingsNonSteamFolders", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Filetype Management 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagement() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagement", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 high 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementAgressionHigh() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementAgressionHigh", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 low 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementAgressionLow() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementAgressionLow", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 medium 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementAgressionMedium() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementAgressionMedium", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 For Steam games only.When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it. 'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well. 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementAgressionTip() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementAgressionTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Manage local skipped filetypes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementLocalSkipFiletypes() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementLocalSkipFiletypes", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Agression of online skiplist 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsFiletypeManagementOnlineSkiplistAgression() As String
+ Get
+ Return ResourceManager.GetString("SettingsFiletypeManagementOnlineSkiplistAgression", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 System Integration 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSystemIntegration() As String
+ Get
+ Return ResourceManager.GetString("SettingsSystemIntegration", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Show notification on completion 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSystemIntegrationNotificationOnCompletion() As String
+ Get
+ Return ResourceManager.GetString("SettingsSystemIntegrationNotificationOnCompletion", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add to right-click context menu 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSystemIntegrationRightClickMenu() As String
+ Get
+ Return ResourceManager.GetString("SettingsSystemIntegrationRightClickMenu", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add to start menu 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSystemIntegrationStartMenu() As String
+ Get
+ Return ResourceManager.GetString("SettingsSystemIntegrationStartMenu", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Start CompactGUI in system tray 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSystemIntegrationSystemTrayStartup() As String
+ Get
+ Return ResourceManager.GetString("SettingsSystemIntegrationSystemTrayStartup", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 UI Settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUiSettings() As String
+ Get
+ Return ResourceManager.GetString("SettingsUiSettings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Always show details on Compression Mode buttons 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUiSettingsCompressionButtons() As String
+ Get
+ Return ResourceManager.GetString("SettingsUiSettingsCompressionButtons", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Language (Requires Restart) 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUiSettingsLanguageChangedLabel() As String
+ Get
+ Return ResourceManager.GetString("SettingsUiSettingsLanguageChangedLabel", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Language changed successfully. You may need to restart the application for all changes to take effect. 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUiSettingsLanguageChangedMsg() As String
+ Get
+ Return ResourceManager.GetString("SettingsUiSettingsLanguageChangedMsg", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Language Changed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUiSettingsLanguageChangeTitle() As String
+ Get
+ Return ResourceManager.GetString("SettingsUiSettingsLanguageChangeTitle", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Update Settings 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUpdateSettings() As String
+ Get
+ Return ResourceManager.GetString("SettingsUpdateSettings", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Check for pre-release updates 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsUpdateSettingsCheckPreUpdates() As String
+ Get
+ Return ResourceManager.GetString("SettingsUpdateSettingsCheckPreUpdates", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 edit 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniEdit() As String
+ Get
+ Return ResourceManager.GetString("UniEdit", resourceCulture)
+ End Get
+ End Property
+ End Class
+End Namespace
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
new file mode 100644
index 0000000..9a0763b
--- /dev/null
+++ b/CompactGUI/i18n/i18n.resx
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Welcome
+
+
+ Language (Requires Restart)
+
+
+ Language changed successfully. You may need to restart the application for all changes to take effect.
+
+
+ Language Changed
+
+
+ UI Settings
+
+
+ Always show details on Compression Mode buttons
+
+
+ Update Settings
+
+
+ Check for pre-release updates
+
+
+ Background Watcher Settings
+
+
+ Monitor compressed folders for changes
+
+
+ Compress folders:
+ @MutedRule(WhiteSpaceTail)
+
+
+ every
+
+
+ day(s)
+
+
+ at
+ @MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)
+
+
+ Compression Settings
+
+
+ Maximum Compression Threads
+
+
+ HDDs only use 1 thread
+
+
+ Estimate Compression for non-Steam Folders (beta)
+
+
+ System Integration
+
+
+ Add to right-click context menu
+
+
+ Add to start menu
+
+
+ Show notification on completion
+
+
+ Start CompactGUI in system tray
+
+
+ Filetype Management
+
+
+ Manage local skipped filetypes
+
+
+ edit
+
+
+ Agression of online skiplist
+
+
+ For Steam games only.When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it. 'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well.
+
+
+ low
+
+
+ medium
+
+
+ high
+
+
+ Settings
+
+
+ WatcherPage
+
+
+ Database Results
+
+
+ Search by game name or SteamID...
+
+
+ Sort By
+
+
+ Game Name
+
+
+ SteamID
+
+
+ Max Savings
+
+
+ Games
+
+
+ uncompressed size
+
+
+ contained files
+
+
+ Add Folder to Queue
+
+
+ Compress Selected
+
+
+ Working
+
+
+ Results State
+
+
+ Compression Mode
+
+
+ XPRESS 4K
+ @Invariant
+
+
+ XPRESS 8K
+ @Invariant
+
+
+ XPRESS 16K
+ @Invariant
+
+
+ LZX
+ @Invariant
+
+
+ Configuration
+
+
+ Skip file types specified in settings
+
+
+ Skip file types likely to compress poorly
+
+
+ For Steam Games:
+skips files based on database results
+
+For Non-Steam Folders:
+skips files based on compression estimate
+
+
+ Watch folder for changes
+
+
+ Apply to all
+
+
+ Estimated size
+
+
+ Savings
+
+
+ unknown
+
+
+ Watched Folders
+
+
+ saved
+
+
+ Cancel Background Compressor
+
+
+ Compress All Now
+
+
+ Last analysed
+
+
+ Unknown
+
+
+ {0:0} days ago
+
+
+ {0:0} hours ago
+
+
+ {0:0} minutes ago
+
+
+ just now
+
+
+ Compression Summary
+
+
+ Space Saved
+
+
+ Files Compressed
+
+
+ Compression Mode
+
+
+ Uncompress
+
+
+ Compress Again
+
+
+ Submit Results
+
+
+ Before
+
+
+ After
+
+
+ MODE
+
+
+ BEFORE
+
+
+ AFTER
+
+
+ SAVINGS
+
+
+ TOTAL RESULTS
+
+
+ Ascending
+
+
+ Descending
+
+
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
new file mode 100644
index 0000000..85057f3
--- /dev/null
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 欢迎
+
+
+ UI 设置
+
+
+ 始终显示压缩模式按钮的详细信息
+
+
+ 语言 (需要重启)
+
+
+ 语言更改
+
+
+ 语言更改成功。您可能需要重启应用程序以使所有更改生效。
+
+
+ 更新设置
+
+
+ 检查预发布更新
+
+
+ 后台监控设置
+
+
+ 监控已压缩文件夹的更改
+
+
+ 压缩文件夹:
+
+
+ 每
+
+
+ 天
+
+
+ 压缩设置
+
+
+ 最大压缩线程数
+
+
+ HDD 仅使用 1 个线程
+
+
+ 估算非 Steam 文件夹的压缩率 (测试版)
+
+
+ 系统集成
+
+
+ 添加到右键菜单
+
+
+ 添加到开始菜单
+
+
+ 完成后显示通知
+
+
+ 在系统托盘启动 CompactGUI
+
+
+ 文件类型管理
+
+
+ 管理本地跳过的文件类型
+
+
+ 编辑
+
+
+ 在线跳过列表的激进程度
+
+
+ 仅限 Steam 游戏。在选择跳过用户提交的文件类型时,此设置决定每个文件类型需要多少提交才能考虑跳过它。"低"通常是最佳选择,因为较高的选项有跳过原本可以良好压缩的文件的风险。
+
+
+ 低
+
+
+ 中
+
+
+ 高
+
+
+ 监控页
+
+
+ 设置
+
+
+ 数据库结果
+
+
+ 按游戏名称或 SteamID 搜索...
+
+
+ 排序方式
+
+
+ 游戏名称
+
+
+ SteamID
+
+
+ 最大节省
+
+
+ 游戏列表
+
+
+ 未压缩大小
+
+
+ 包含文件
+
+
+ 添加文件夹到队列
+
+
+ 压缩选中项
+
+
+ 正在处理
+
+
+ 数据库状态
+
+
+ 压缩模式
+
+
+ 配置
+
+
+ 跳过设置中指定的文件类型
+
+
+ 跳过可能压缩效果不佳的文件类型
+
+
+ 对于 Steam 游戏:
+根据数据库结果跳过文件
+
+对于非 Steam 文件夹:
+基于压缩估计跳过文件
+
+
+ 监控文件夹更改
+
+
+ 应用到所有
+
+
+ 预估大小
+
+
+ 节省
+
+
+ 未知
+
+
+ 受监控文件夹
+
+
+ 已节省
+
+
+ 取消后台压缩
+
+
+ 立即全部压缩
+
+
+ 上次分析
+
+
+ 未知
+
+
+ {0:0} 天前
+
+
+ {0:0} 小时前
+
+
+ {0:0} 分钟前
+
+
+ 刚刚
+
+
+ 压缩摘要
+
+
+ 节省空间
+
+
+ 文件已压缩
+
+
+ 压缩模式
+
+
+ 解压缩
+
+
+ 再次压缩
+
+
+ 提交结果
+
+
+ 压缩前
+
+
+ 压缩后
+
+
+ 模式
+
+
+ 压缩前
+
+
+ 压缩后
+
+
+ 节省
+
+
+ 总结果
+
+
+ 升序
+
+
+ 降序
+
+
\ No newline at end of file
diff --git a/ResXManager.config.xml b/ResXManager.config.xml
new file mode 100644
index 0000000..9c83514
--- /dev/null
+++ b/ResXManager.config.xml
@@ -0,0 +1,4 @@
+
+
+ {"Items":[{"Extensions":".cs,.vb","Patterns":"$Namespace.$File.$Key|$File.$Key|StringResourceKey.$Key|$Namespace.StringResourceKey.$Key|nameof($File.$Key), ResourceType = typeof($File)|ErrorMessageResourceType = typeof($File), ErrorMessageResourceName = nameof($File.$Key)|local:Localize $Key"},{"Extensions":".cshtml,.vbhtml","Patterns":"@$Namespace.$File.$Key|@$File.$Key|@StringResourceKey.$Key|@$Namespace.StringResourceKey.$Key"},{"Extensions":".razor","Patterns":"@$Namespace.$File.$Key|@$File.$Key|@StringResourceKey.$Key|@$Namespace.StringResourceKey.$Key|@localizer[\"$Text\"]"},{"Extensions":".cpp,.c,.hxx,.h","Patterns":"$File::$Key"},{"Extensions":".aspx,.ascx","Patterns":"<%$ Resources:$File,$Key %>|<%= $File.$Key %>|<%= $Namespace.$File.$Key %>"},{"Extensions":".xaml","Patterns":"\"{x:Static properties:$File.$Key}\"|\"{local:Localize $Key}\""},{"Extensions":".ts","Patterns":"resources.$Key"},{"Extensions":".html","Patterns":"{{ resources.$Key }}"}]}
+
\ No newline at end of file
From bb402f1c3315ada72242240090671eb89fe5d9f6 Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Tue, 30 Dec 2025 10:26:21 +0800
Subject: [PATCH 3/9] i18n optimize
---
CompactGUI/Components/Converters/IValueConverters.vb | 3 ---
CompactGUI/Models/CompressableFolders/CompressableFolder.vb | 4 ++--
CompactGUI/Services/CompressableFolderService.vb | 4 ++--
CompactGUI/Views/Components/FolderWatcherCard.xaml.vb | 3 ---
CompactGUI/Views/SettingsPage.xaml | 3 +--
CompactGUI/i18n/i18n.Designer.vb | 4 +++-
CompactGUI/i18n/i18n.resx | 6 ++++--
CompactGUI/i18n/i18n.zh-CN.resx | 4 +++-
8 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index 882398f..d0ef602 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -88,9 +88,6 @@ End Class
Public Class RelativeDateConverter : Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
- If value Is Nothing Or Not TypeOf value Is DateTime Then
- Return LanguageHelper.GetString("RelativeTimeUnknown")
- End If
Dim dt = CType(value, DateTime)
Dim ts As TimeSpan = DateTime.Now - dt
diff --git a/CompactGUI/Models/CompressableFolders/CompressableFolder.vb b/CompactGUI/Models/CompressableFolders/CompressableFolder.vb
index da797f7..815050f 100644
--- a/CompactGUI/Models/CompressableFolders/CompressableFolder.vb
+++ b/CompactGUI/Models/CompressableFolders/CompressableFolder.vb
@@ -1,4 +1,4 @@
-Imports System.Collections.ObjectModel
+Imports System.Collections.ObjectModel
Imports System.IO
Imports System.Threading
@@ -10,7 +10,7 @@ Imports CompactGUI.Core.WOFHelper
Imports Microsoft.Extensions.Logging
-Imports PropertyChanged
+'Imports PropertyChanged
'Need this abstract class so we can use it in XAML
diff --git a/CompactGUI/Services/CompressableFolderService.vb b/CompactGUI/Services/CompressableFolderService.vb
index af01bcd..594c344 100644
--- a/CompactGUI/Services/CompressableFolderService.vb
+++ b/CompactGUI/Services/CompressableFolderService.vb
@@ -1,10 +1,10 @@
-Imports System.Collections.ObjectModel
+Imports System.Collections.ObjectModel
Imports System.Threading
Imports CompactGUI.Core
Imports CompactGUI.Core.Settings
-Imports Microsoft.CodeAnalysis.Diagnostics
+'Imports Microsoft.CodeAnalysis.Diagnostics
Imports Microsoft.Extensions.Logging
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb b/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
index 97abf6b..bbebe73 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml.vb
@@ -108,7 +108,4 @@ Public Class FolderWatcherCard : Inherits UserControl
End If
End Sub
- Private Sub UiWatcherListView_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
-
- End Sub
End Class
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index 3b134af..7de2896 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -139,7 +139,6 @@
@@ -457,7 +456,7 @@
Content="{local:Localize SettingsUiSettingsCompressionButtons}"
d:Content="Always show details on Compression Mode buttons"
Margin="0,-3"
- IsChecked="{Binding AppSettings.AlwaysShowDetailedCompressionMode}" Cursor="Hand" />
+ IsChecked="{Binding AppSettings.AlwaysShowDetailedCompressionMode}" />
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 9fda1d7..841e4cc 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -699,7 +699,9 @@ Namespace i18n
End Property
'''
- ''' 查找类似 For Steam games only.When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it. 'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well. 的本地化字符串。
+ ''' 查找类似 For Steam games only.
+ '''When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it.
+ ''''low' is generally best, as higher options run the risk of skipping files that would otherwise compress well. 的本地化字符串。
'''
Public Shared ReadOnly Property SettingsFiletypeManagementAgressionTip() As String
Get
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index 9a0763b..1458164 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -159,7 +159,7 @@
at
- @MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)
+ @MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)@Invariant
Compression Settings
@@ -201,7 +201,9 @@
Agression of online skiplist
- For Steam games only.When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it. 'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well.
+ For Steam games only.
+When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it.
+'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well.
low
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index 85057f3..b4cc50c 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -196,7 +196,9 @@
在线跳过列表的激进程度
- 仅限 Steam 游戏。在选择跳过用户提交的文件类型时,此设置决定每个文件类型需要多少提交才能考虑跳过它。"低"通常是最佳选择,因为较高的选项有跳过原本可以良好压缩的文件的风险。
+ 仅限 Steam 游戏。
+在选择跳过用户提交的文件类型时,该设置决定了每种文件类型需要提交多少次才能考虑跳过该类型。
+“低”通常是最好的,因为高档有跳过本来可以很好地压缩的文件的风险。
低
From d7fc9332d9af3e9aa4762bfb33ab9b628a525ac4 Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Tue, 30 Dec 2025 11:51:19 +0800
Subject: [PATCH 4/9] i18n optimize
---
.../Settings/Settings_skiplistflyout.xaml | 11 ++-
CompactGUI/LanguageHelper.vb | 26 ------
CompactGUI/Views/SettingsPage.xaml | 48 +++++------
CompactGUI/Views/SettingsPage.xaml.vb | 13 +++
CompactGUI/i18n/i18n.Designer.vb | 81 +++++++++++++++++++
CompactGUI/i18n/i18n.resx | 29 ++++++-
CompactGUI/i18n/i18n.zh-CN.resx | 36 ++++++++-
7 files changed, 187 insertions(+), 57 deletions(-)
diff --git a/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
index 4049144..67fefa6 100644
--- a/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
+++ b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
@@ -1,4 +1,4 @@
-
-
diff --git a/CompactGUI/LanguageHelper.vb b/CompactGUI/LanguageHelper.vb
index 7c90020..f48acae 100644
--- a/CompactGUI/LanguageHelper.vb
+++ b/CompactGUI/LanguageHelper.vb
@@ -105,32 +105,6 @@ Public Class LanguageHelper
' End If
'End If
- '@@@
- 'Dim systemLang = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName
- 'Dim defaultLang As String = "en-US"
-
- ''匹配多语言
- 'Select Case systemLang.ToLower()
- ' Case "zh" ' 中文
- ' defaultLang = "zh-CN"
- ' Case "en" ' 英文
- ' defaultLang = "en-US"
- ' Case "ja" ' 日语
- ' defaultLang = "ja-JP"
- ' Case "ko" ' 韩语
- ' defaultLang = "ko-KR"
- ' Case "fr" ' 法语
- ' defaultLang = "fr-FR"
- ' Case "de" ' 德语
- ' defaultLang = "de-DE"
- ' Case "es" ' 西班牙语
- ' defaultLang = "es-ES"
- ' Case "ru" ' 俄语
- ' defaultLang = "ru-RU"
- ' Case Else ' 未匹配语言,默认英文
- ' defaultLang = "en-US"
- 'End Select
-
ApplyCulture(defaultLang)
WriteAppConfig("language", defaultLang)
End Sub
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index 7de2896..07d2186 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -325,10 +325,10 @@
Width="290" Height="35"
Margin="10,0,0,0" HorizontalAlignment="Left"
SelectedIndex="{Binding AppSettings.BackgroundModeSelection, Mode=TwoWay, Converter={StaticResource EnumToIntConverter}}">
-
-
-
-
+
+
+
+
@@ -374,15 +374,15 @@
-
+
-
-
@@ -437,28 +437,30 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index 224452a..5a061c7 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -1,6 +1,19 @@
Imports System.Windows.Data
Partial Public Class SettingsPage
+ Sub New(settingsviewmodel As SettingsViewModel)
+
+ InitializeComponent()
+
+
+ DataContext = settingsviewmodel
+
+
+ ScrollViewer.SetCanContentScroll(Me, False)
+
+ End Sub
+
+
Public Property LanguageChangedLabelContent As String
Get
Return CType(GetValue(LanguageChangedLabelContentProperty), String)
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 841e4cc..5ca7645 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -590,6 +590,60 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 When System is Idle 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersIdle() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersIdle", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Last ran: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersLastRanFormat() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersLastRanFormat", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Never 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersNever() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersNever", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersNextScheduledFormat() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersNextScheduledFormat", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 On Schedule 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersOnSchedule() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersOnSchedule", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 On Schedule if system is also idle 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersOnScheduleIdle() As String
+ Get
+ Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersOnScheduleIdle", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Monitor compressed folders for changes 的本地化字符串。
'''
@@ -727,6 +781,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 edit skipped filetypes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SettingsSkiplistflyoutEditSkippedFiletypes() As String
+ Get
+ Return ResourceManager.GetString("SettingsSkiplistflyoutEditSkippedFiletypes", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 System Integration 的本地化字符串。
'''
@@ -843,5 +906,23 @@ Namespace i18n
Return ResourceManager.GetString("UniEdit", resourceCulture)
End Get
End Property
+
+ '''
+ ''' 查找类似 Reset 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniReset() As String
+ Get
+ Return ResourceManager.GetString("UniReset", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Save 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniSave() As String
+ Get
+ Return ResourceManager.GetString("UniSave", resourceCulture)
+ End Get
+ End Property
End Class
End Namespace
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index 1458164..fc62b80 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -159,7 +159,7 @@
at
- @MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)@Invariant
+ @MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)
Compression Settings
@@ -387,4 +387,31 @@ skips files based on compression estimate
Descending
+
+ edit skipped filetypes
+
+
+ Save
+
+
+ Reset
+
+
+ Never
+
+
+ When System is Idle
+
+
+ On Schedule
+
+
+ On Schedule if system is also idle
+
+
+ Last ran: {0:dd MMM yyyy \a\t HH:mm:ss}
+
+
+ Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss}
+
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index b4cc50c..eef09aa 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- 欢迎
-
UI 设置
@@ -366,4 +363,37 @@
降序
+
+ 保存
+
+
+ 重置
+
+
+ 编辑跳过类型
+
+
+ 从不
+
+
+ 当系统空闲时
+
+
+ 按计划
+
+
+ 按计划且系统空闲时
+
+
+ 上次运行: {0:yyyy年 M月 d日 HH:mm:ss}
+
+
+ 下次计划: {0:yyyy年 M月 d日 HH:mm:ss}
+
+
+ 欢迎
+
+
+
+
\ No newline at end of file
From c08025b0982f516017fbd6de21bb8cea7bc54800 Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Tue, 30 Dec 2025 14:07:05 +0800
Subject: [PATCH 5/9] i18n optimize
@i18n tag
---
CompactGUI/LanguageHelper.vb | 5 +-
CompactGUI/MainWindow.xaml | 15 +++---
CompactGUI/Views/Pages/DatabasePage.xaml | 11 ++++-
CompactGUI/Views/Pages/HomePage.xaml | 6 +--
CompactGUI/Views/SettingsPage.xaml | 1 +
CompactGUI/i18n/i18n.Designer.vb | 63 ++++++++++++++++++++++++
CompactGUI/i18n/i18n.resx | 21 ++++++++
CompactGUI/i18n/i18n.zh-CN.resx | 21 ++++++++
8 files changed, 129 insertions(+), 14 deletions(-)
diff --git a/CompactGUI/LanguageHelper.vb b/CompactGUI/LanguageHelper.vb
index f48acae..8dcb0f2 100644
--- a/CompactGUI/LanguageHelper.vb
+++ b/CompactGUI/LanguageHelper.vb
@@ -7,6 +7,7 @@ Imports System.Reflection
Public Class LanguageHelper
' 支持的语言列表
+ ' @i18n
Private Shared ReadOnly SupportedCultures As String() = {"en-US", "zh-CN"}
Private Shared resourceManager As ResourceManager = i18n.i18n.ResourceManager
Private Shared currentCulture As CultureInfo = Nothing
@@ -60,9 +61,6 @@ Public Class LanguageHelper
Thread.CurrentThread.CurrentCulture = culture
currentCulture = culture
- ' 额外:如果是WPF/WinForms,刷新界面(可选)
- ' WinForms示例:Application.CurrentCulture = culture
- ' WPF示例:FrameworkElement.LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(culture.IetfLanguageTag)))
Catch ex As Exception
Debug.WriteLine($"应用语言失败:{cultureName},错误:{ex.Message}")
SetDefaultLanguage()
@@ -82,6 +80,7 @@ Public Class LanguageHelper
Private Shared Sub SetDefaultLanguage()
' 根据系统语言设置默认语言
+ '@i18n
Dim langMapping As New Dictionary(Of String, String) From {
{"en", "en-US"},
{"zh", "zh-CN"}
diff --git a/CompactGUI/MainWindow.xaml b/CompactGUI/MainWindow.xaml
index 6f25c61..dbd059f 100644
--- a/CompactGUI/MainWindow.xaml
+++ b/CompactGUI/MainWindow.xaml
@@ -1,4 +1,4 @@
-
-
-
-
-
-
diff --git a/CompactGUI/Views/Pages/DatabasePage.xaml b/CompactGUI/Views/Pages/DatabasePage.xaml
index 009a365..ee5b4ed 100644
--- a/CompactGUI/Views/Pages/DatabasePage.xaml
+++ b/CompactGUI/Views/Pages/DatabasePage.xaml
@@ -22,8 +22,15 @@
Foreground="{StaticResource CardForeground}"
Visibility="Visible" />
-
-
+
+
+
+
+
+
+
+
-
+
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index 07d2186..436b15a 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -439,6 +439,7 @@
+
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 5ca7645..55f083f 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -91,6 +91,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Last Fetched: {0:dd MMM yyyy HH:mm:ss} 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property DatabaseLastFetched() As String
+ Get
+ Return ResourceManager.GetString("DatabaseLastFetched", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Ascending 的本地化字符串。
'''
@@ -289,6 +298,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 select a folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property HomePageSelectFolder() As String
+ Get
+ Return ResourceManager.GetString("HomePageSelectFolder", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Working 的本地化字符串。
'''
@@ -307,6 +325,33 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Compression DB 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property NameMainWindowCompressionDB() As String
+ Get
+ Return ResourceManager.GetString("NameMainWindowCompressionDB", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Home 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property NameMainWindowHome() As String
+ Get
+ Return ResourceManager.GetString("NameMainWindowHome", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Watcher 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property NameMainWindowWatcher() As String
+ Get
+ Return ResourceManager.GetString("NameMainWindowWatcher", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Database Results 的本地化字符串。
'''
@@ -898,6 +943,24 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 CompactGUI 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property TitleCompactGUI() As String
+ Get
+ Return ResourceManager.GetString("TitleCompactGUI", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Admin 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniAdmin() As String
+ Get
+ Return ResourceManager.GetString("UniAdmin", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 edit 的本地化字符串。
'''
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index fc62b80..18176f9 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -414,4 +414,25 @@ skips files based on compression estimate
Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss}
+
+ CompactGUI
+
+
+ select a folder
+
+
+ Admin
+
+
+ Compression DB
+
+
+ Watcher
+
+
+ Home
+
+
+ Last Fetched: {0:dd MMM yyyy HH:mm:ss}
+
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index eef09aa..d1dab4b 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -396,4 +396,25 @@
+
+ 管理员权限
+
+
+ 选择文件夹
+
+
+ CompactGUI
+
+
+ 压缩数据库
+
+
+ 监控
+
+
+ 主页
+
+
+ 最后获取: {0:yyyy年 M月 d日 HH:mm:ss}
+
\ No newline at end of file
From aa49e47f329b808dfb17a3d2bcaef93c3fc4b6ac Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Thu, 1 Jan 2026 15:20:44 +0800
Subject: [PATCH 6/9] Optimize key value
---
.gitignore | 1 +
.../Components/Converters/IValueConverters.vb | 10 +-
.../Settings/Settings_skiplistflyout.xaml | 2 +-
CompactGUI/MainWindow.xaml | 8 +-
.../Components/CompressionMode_Radio.xaml | 6 +-
.../Views/Components/FolderWatcherCard.xaml | 10 +-
CompactGUI/Views/Pages/DatabasePage.xaml | 38 +-
CompactGUI/Views/Pages/FolderView.xaml | 4 +-
CompactGUI/Views/Pages/HomePage.xaml | 12 +-
.../Views/Pages/PendingCompression.xaml | 18 +-
CompactGUI/Views/Pages/ResultsTemplate.xaml | 18 +-
CompactGUI/Views/Pages/WatcherPage.xaml | 2 +-
CompactGUI/Views/SettingsPage.xaml | 68 +-
CompactGUI/Views/SettingsPage.xaml.vb | 8 +-
CompactGUI/i18n/i18n.Designer.vb | 628 +++++++++---------
CompactGUI/i18n/i18n.resx | 198 +++---
CompactGUI/i18n/i18n.zh-CN.resx | 190 +++---
17 files changed, 581 insertions(+), 640 deletions(-)
diff --git a/.gitignore b/.gitignore
index 6463666..f9a2ae7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -367,3 +367,4 @@ FodyWeavers.xsd
# IntelliJ
.idea/
/CompactGUI.WatcherCS
+/.history
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index d0ef602..9b59a73 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -93,16 +93,16 @@ Public Class RelativeDateConverter : Implements IValueConverter
Dim ts As TimeSpan = DateTime.Now - dt
If ts > TimeSpan.FromDays(19000) Then
- Return LanguageHelper.GetString("RelativeTimeUnknown")
+ Return LanguageHelper.GetString("Time_Unknown")
End If
If ts > TimeSpan.FromDays(2) Then
- Return String.Format(LanguageHelper.GetString("RelativeTimeDaysAgo"), ts.TotalDays)
+ Return String.Format(LanguageHelper.GetString("Time_DaysAgo"), ts.TotalDays)
ElseIf ts > TimeSpan.FromHours(2) Then
- Return String.Format(LanguageHelper.GetString("RelativeTimeHoursAgo"), ts.TotalHours)
+ Return String.Format(LanguageHelper.GetString("Time_HoursAgo"), ts.TotalHours)
ElseIf ts > TimeSpan.FromMinutes(2) Then
- Return String.Format(LanguageHelper.GetString("RelativeTimeMinutesAgo"), ts.TotalMinutes)
+ Return String.Format(LanguageHelper.GetString("Time_MinutesAgo"), ts.TotalMinutes)
Else
- Return LanguageHelper.GetString("RelativeTimeJustNow")
+ Return LanguageHelper.GetString("Time_Now")
End If
End Function
diff --git a/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
index 67fefa6..cca0717 100644
--- a/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
+++ b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml
@@ -45,7 +45,7 @@
-
diff --git a/CompactGUI/MainWindow.xaml b/CompactGUI/MainWindow.xaml
index dbd059f..a3ae737 100644
--- a/CompactGUI/MainWindow.xaml
+++ b/CompactGUI/MainWindow.xaml
@@ -41,7 +41,7 @@
-
-
-
-
diff --git a/CompactGUI/Views/Components/CompressionMode_Radio.xaml b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
index a4d813f..51a8c68 100644
--- a/CompactGUI/Views/Components/CompressionMode_Radio.xaml
+++ b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
@@ -41,7 +41,7 @@
-
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml b/CompactGUI/Views/Components/FolderWatcherCard.xaml
index 0944e2d..012b13c 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml
@@ -36,7 +36,7 @@
-
-
+
-
+
@@ -112,8 +112,8 @@
-
-
+
+
diff --git a/CompactGUI/Views/Pages/DatabasePage.xaml b/CompactGUI/Views/Pages/DatabasePage.xaml
index ee5b4ed..c8f861e 100644
--- a/CompactGUI/Views/Pages/DatabasePage.xaml
+++ b/CompactGUI/Views/Pages/DatabasePage.xaml
@@ -14,7 +14,7 @@
-
-
+
@@ -39,7 +39,7 @@
-->
-
+
@@ -52,26 +52,26 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -166,11 +166,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/CompactGUI/Views/Pages/FolderView.xaml b/CompactGUI/Views/Pages/FolderView.xaml
index 3403b67..3960489 100644
--- a/CompactGUI/Views/Pages/FolderView.xaml
+++ b/CompactGUI/Views/Pages/FolderView.xaml
@@ -105,9 +105,9 @@
Foreground="#30FFFFFF" />
-
+
-
+
diff --git a/CompactGUI/Views/Pages/HomePage.xaml b/CompactGUI/Views/Pages/HomePage.xaml
index c91882f..8539d03 100644
--- a/CompactGUI/Views/Pages/HomePage.xaml
+++ b/CompactGUI/Views/Pages/HomePage.xaml
@@ -14,7 +14,7 @@
-
-
+
@@ -62,7 +62,7 @@
Margin="0,-90,0,0" HorizontalAlignment="Center" VerticalAlignment="Center"
Visibility="{Binding HomeViewIsFresh, Converter={StaticResource BooleanToVisibilityConverter}, Mode=OneWay}">
@@ -73,7 +73,7 @@
Margin="0,20,0,0" HorizontalContentAlignment="Stretch">
-
+
@@ -175,7 +175,7 @@
Background="{StaticResource CardBackgroundFillColorSecondaryBrush}">
-
diff --git a/CompactGUI/Views/Pages/PendingCompression.xaml b/CompactGUI/Views/Pages/PendingCompression.xaml
index b889cc5..307ac62 100644
--- a/CompactGUI/Views/Pages/PendingCompression.xaml
+++ b/CompactGUI/Views/Pages/PendingCompression.xaml
@@ -20,7 +20,7 @@
-
@@ -31,7 +31,7 @@
-->
-
@@ -130,13 +130,13 @@
FontSize="16"
IsChecked="{Binding Folder.CompressionOptions.SkipUserSubmittedFiletypes, Mode=TwoWay}">
-
+
-
@@ -160,7 +160,7 @@
-
-
-
@@ -44,7 +44,7 @@
-
@@ -55,7 +55,7 @@
-
@@ -71,7 +71,7 @@
Margin="0,0,20,20" Padding="10,20,10,20"
Background="#30FFFFFF" BorderThickness="0">
-
-
-
-
-
-
diff --git a/CompactGUI/Views/SettingsPage.xaml b/CompactGUI/Views/SettingsPage.xaml
index 436b15a..2599257 100644
--- a/CompactGUI/Views/SettingsPage.xaml
+++ b/CompactGUI/Views/SettingsPage.xaml
@@ -11,7 +11,7 @@
mc:Ignorable="d">
-
@@ -96,7 +96,7 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -116,7 +116,7 @@
-
+
-
@@ -138,7 +138,7 @@
-
@@ -148,15 +148,15 @@
Grid.Row="2" Grid.Column="1"
Foreground="#98A9B9" IsEnabled="False" SelectedIndex="0">
-
-
-
@@ -174,7 +174,7 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -184,22 +184,22 @@
@@ -218,7 +218,7 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -243,7 +243,7 @@
-
+
@@ -260,14 +260,14 @@
-
@@ -304,7 +304,7 @@
@@ -319,32 +319,32 @@
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
@@ -401,7 +401,7 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -412,7 +412,7 @@
@@ -429,7 +429,7 @@
FlowDirection="RightToLeft" IsExpanded="True"
Style="{StaticResource CustomCardExpanderStyle}">
-
@@ -445,7 +445,7 @@
-
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index 5a061c7..bea26e8 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -24,7 +24,7 @@ Partial Public Class SettingsPage
End Property
Public Shared ReadOnly LanguageChangedLabelContentProperty As DependencyProperty =
- DependencyProperty.Register("SettingsUiSettingsLanguageChangedLabel", GetType(String), GetType(SettingsPage),
+ DependencyProperty.Register("SetUi_LanguageChanged", GetType(String), GetType(SettingsPage),
New PropertyMetadata("Language (Requires Restart)"))
Private Sub SettingsPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
@@ -42,7 +42,7 @@ Partial Public Class SettingsPage
Private Sub UpdateLocalizedText()
' 更新语言标签内容
- LanguageChangedLabelContent = LanguageHelper.GetString("SettingsUiSettingsLanguageChangedLabel")
+ LanguageChangedLabelContent = LanguageHelper.GetString("SetUi_LanguageChanged")
End Sub
@@ -56,8 +56,8 @@ Partial Public Class SettingsPage
LanguageHelper.WriteAppConfig("language", languageCode)
UpdateLocalizedText()
- MessageBox.Show(LanguageHelper.GetString("SettingsUiSettingsLanguageChangedMsg"),
- LanguageHelper.GetString("SettingsUiSettingsLanguageChangeTitle"),
+ MessageBox.Show(LanguageHelper.GetString("SetUi_LanguageChangedMsg"),
+ LanguageHelper.GetString("SetUi_LanguageChangedTitle"),
MessageBoxButton.OK, MessageBoxImage.Information)
End If
End Sub
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 55f083f..6989c6a 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -65,926 +65,890 @@ Namespace i18n
End Property
'''
- ''' 查找类似 Estimated size 的本地化字符串。
- '''
- Public Shared ReadOnly Property CompressionModeRadioEstimatedSize() As String
- Get
- Return ResourceManager.GetString("CompressionModeRadioEstimatedSize", resourceCulture)
- End Get
- End Property
-
- '''
- ''' 查找类似 Savings 的本地化字符串。
- '''
- Public Shared ReadOnly Property CompressionModeRadioSavings() As String
- Get
- Return ResourceManager.GetString("CompressionModeRadioSavings", resourceCulture)
- End Get
- End Property
-
- '''
- ''' 查找类似 unknown 的本地化字符串。
- '''
- Public Shared ReadOnly Property CompressionModeRadioUnknown() As String
- Get
- Return ResourceManager.GetString("CompressionModeRadioUnknown", resourceCulture)
- End Get
- End Property
-
- '''
- ''' 查找类似 Last Fetched: {0:dd MMM yyyy HH:mm:ss} 的本地化字符串。
+ ''' 查找类似 Settings 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseLastFetched() As String
+ Public Shared ReadOnly Property _Set() As String
Get
- Return ResourceManager.GetString("DatabaseLastFetched", resourceCulture)
+ Return ResourceManager.GetString("Set", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Ascending 的本地化字符串。
+ ''' 查找类似 Configuration 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePage_Ascending() As String
+ Public Shared ReadOnly Property CompressionConfiguration() As String
Get
- Return ResourceManager.GetString("DatabasePage_Ascending", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Descending 的本地化字符串。
+ ''' 查找类似 Apply to all 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePage_Descending() As String
+ Public Shared ReadOnly Property CompressionConfiguration_ApplyAll() As String
Get
- Return ResourceManager.GetString("DatabasePage_Descending", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration_ApplyAll", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 AFTER 的本地化字符串。
+ ''' 查找类似 Skip file types specified in settings 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePageAFTER() As String
+ Public Shared ReadOnly Property CompressionConfiguration_SkipFileTypes() As String
Get
- Return ResourceManager.GetString("DatabasePageAFTER", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration_SkipFileTypes", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 BEFORE 的本地化字符串。
+ ''' 查找类似 Skip file types likely to compress poorly 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePageBEFORE() As String
+ Public Shared ReadOnly Property CompressionConfiguration_SkipFileTypesLikelyPoorly() As String
Get
- Return ResourceManager.GetString("DatabasePageBEFORE", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration_SkipFileTypesLikelyPoorly", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 MODE 的本地化字符串。
+ ''' 查找类似 For Steam Games:
+ '''skips files based on database results
+ '''
+ '''For Non-Steam Folders:
+ '''skips files based on compression estimate 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePageMODE() As String
+ Public Shared ReadOnly Property CompressionConfiguration_SkipFileTypesLikelyPoorlyTip() As String
Get
- Return ResourceManager.GetString("DatabasePageMODE", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration_SkipFileTypesLikelyPoorlyTip", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 SAVINGS 的本地化字符串。
+ ''' 查找类似 Watch folder for changes 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePageSAVINGS() As String
+ Public Shared ReadOnly Property CompressionConfiguration_WatchFolderChanges() As String
Get
- Return ResourceManager.GetString("DatabasePageSAVINGS", resourceCulture)
+ Return ResourceManager.GetString("CompressionConfiguration_WatchFolderChanges", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 TOTAL RESULTS 的本地化字符串。
+ ''' 查找类似 Database Results 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabasePageTOTALRESULTS() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults() As String
Get
- Return ResourceManager.GetString("DatabasePageTOTALRESULTS", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults", resourceCulture)
End Get
End Property
'''
''' 查找类似 Games 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsGames() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_Games() As String
Get
- Return ResourceManager.GetString("DatabaseResultsGames", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_Games", resourceCulture)
End Get
End Property
'''
''' 查找类似 Search by game name or SteamID... 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsSearchSteamID() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SearchSteamID() As String
Get
- Return ResourceManager.GetString("DatabaseResultsSearchSteamID", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SearchSteamID", resourceCulture)
End Get
End Property
'''
''' 查找类似 Sort By 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsSort() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_Sort() As String
Get
- Return ResourceManager.GetString("DatabaseResultsSort", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_Sort", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Game Name 的本地化字符串。
+ ''' 查找类似 Ascending 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsSortGameName() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SortAscending() As String
Get
- Return ResourceManager.GetString("DatabaseResultsSortGameName", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SortAscending", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Max Savings 的本地化字符串。
+ ''' 查找类似 Descending 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsSortMaxSavings() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SortDescending() As String
Get
- Return ResourceManager.GetString("DatabaseResultsSortMaxSavings", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SortDescending", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 SteamID 的本地化字符串。
+ ''' 查找类似 Game Name 的本地化字符串。
'''
- Public Shared ReadOnly Property DatabaseResultsSortSteamID() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SortGameName() As String
Get
- Return ResourceManager.GetString("DatabaseResultsSortSteamID", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SortGameName", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 contained files 的本地化字符串。
+ ''' 查找类似 Max Savings 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderViewContainedFiles() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SortMaxSavings() As String
Get
- Return ResourceManager.GetString("FolderViewContainedFiles", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SortMaxSavings", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 uncompressed size 的本地化字符串。
+ ''' 查找类似 SteamID 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderViewUncompressedSize() As String
+ Public Shared ReadOnly Property CompressionDB_DatabaseResults_SortSteamID() As String
Get
- Return ResourceManager.GetString("FolderViewUncompressedSize", resourceCulture)
+ Return ResourceManager.GetString("CompressionDB_DatabaseResults_SortSteamID", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Cancel Background Compressor 的本地化字符串。
+ ''' 查找类似 Compression Mode 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderWatcherCardCancelBackgroundCompressor() As String
+ Public Shared ReadOnly Property CompressionMode() As String
Get
- Return ResourceManager.GetString("FolderWatcherCardCancelBackgroundCompressor", resourceCulture)
+ Return ResourceManager.GetString("CompressionMode", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compress All Now 的本地化字符串。
+ ''' 查找类似 LZX 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderWatcherCardCompressAllNow() As String
+ Public Shared ReadOnly Property CompressionMode_LZX() As String
Get
- Return ResourceManager.GetString("FolderWatcherCardCompressAllNow", resourceCulture)
+ Return ResourceManager.GetString("CompressionMode_LZX", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Last analysed 的本地化字符串。
+ ''' 查找类似 XPRESS 16K 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderWatcherCardLastAnalysed() As String
+ Public Shared ReadOnly Property CompressionMode_XPRESS16K() As String
Get
- Return ResourceManager.GetString("FolderWatcherCardLastAnalysed", resourceCulture)
+ Return ResourceManager.GetString("CompressionMode_XPRESS16K", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 saved 的本地化字符串。
+ ''' 查找类似 XPRESS 4K 的本地化字符串。
'''
- Public Shared ReadOnly Property FolderWatcherCardSaved() As String
+ Public Shared ReadOnly Property CompressionMode_XPRESS4K() As String
Get
- Return ResourceManager.GetString("FolderWatcherCardSaved", resourceCulture)
+ Return ResourceManager.GetString("CompressionMode_XPRESS4K", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Add Folder to Queue 的本地化字符串。
+ ''' 查找类似 XPRESS 8K 的本地化字符串。
'''
- Public Shared ReadOnly Property HomePageAddFolder() As String
+ Public Shared ReadOnly Property CompressionMode_XPRESS8K() As String
Get
- Return ResourceManager.GetString("HomePageAddFolder", resourceCulture)
+ Return ResourceManager.GetString("CompressionMode_XPRESS8K", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compress Selected 的本地化字符串。
+ ''' 查找类似 Estimated size 的本地化字符串。
'''
- Public Shared ReadOnly Property HomePageCompressSelected() As String
+ Public Shared ReadOnly Property CompressionModeRadio_EstimatedSize() As String
Get
- Return ResourceManager.GetString("HomePageCompressSelected", resourceCulture)
+ Return ResourceManager.GetString("CompressionModeRadio_EstimatedSize", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Results State 的本地化字符串。
+ ''' 查找类似 Savings 的本地化字符串。
'''
- Public Shared ReadOnly Property HomePageResultsState() As String
+ Public Shared ReadOnly Property CompressionModeRadio_Savings() As String
Get
- Return ResourceManager.GetString("HomePageResultsState", resourceCulture)
+ Return ResourceManager.GetString("CompressionModeRadio_Savings", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 select a folder 的本地化字符串。
+ ''' 查找类似 TOTAL RESULTS 的本地化字符串。
'''
- Public Shared ReadOnly Property HomePageSelectFolder() As String
+ Public Shared ReadOnly Property CompressionModeRadio_TotalResults() As String
Get
- Return ResourceManager.GetString("HomePageSelectFolder", resourceCulture)
+ Return ResourceManager.GetString("CompressionModeRadio_TotalResults", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Working 的本地化字符串。
+ ''' 查找类似 unknown 的本地化字符串。
'''
- Public Shared ReadOnly Property HomePageWorking() As String
+ Public Shared ReadOnly Property CompressionModeRadio_Unknown() As String
Get
- Return ResourceManager.GetString("HomePageWorking", resourceCulture)
+ Return ResourceManager.GetString("CompressionModeRadio_Unknown", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Welcome 的本地化字符串。
+ ''' 查找类似 Add Folder to Queue 的本地化字符串。
'''
- Public Shared ReadOnly Property MessageWelcome() As String
+ Public Shared ReadOnly Property Home_AddFolder() As String
Get
- Return ResourceManager.GetString("MessageWelcome", resourceCulture)
+ Return ResourceManager.GetString("Home_AddFolder", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compression DB 的本地化字符串。
+ ''' 查找类似 Compress Again 的本地化字符串。
'''
- Public Shared ReadOnly Property NameMainWindowCompressionDB() As String
+ Public Shared ReadOnly Property Home_CompressAgain() As String
Get
- Return ResourceManager.GetString("NameMainWindowCompressionDB", resourceCulture)
+ Return ResourceManager.GetString("Home_CompressAgain", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Home 的本地化字符串。
+ ''' 查找类似 Compress Selected 的本地化字符串。
'''
- Public Shared ReadOnly Property NameMainWindowHome() As String
+ Public Shared ReadOnly Property Home_CompressSelected() As String
Get
- Return ResourceManager.GetString("NameMainWindowHome", resourceCulture)
+ Return ResourceManager.GetString("Home_CompressSelected", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Watcher 的本地化字符串。
+ ''' 查找类似 select a folder 的本地化字符串。
'''
- Public Shared ReadOnly Property NameMainWindowWatcher() As String
+ Public Shared ReadOnly Property Home_SelectFolder() As String
Get
- Return ResourceManager.GetString("NameMainWindowWatcher", resourceCulture)
+ Return ResourceManager.GetString("Home_SelectFolder", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Database Results 的本地化字符串。
+ ''' 查找类似 Submit Results 的本地化字符串。
'''
- Public Shared ReadOnly Property PageDatabaseResults() As String
+ Public Shared ReadOnly Property Home_SubmitResults() As String
Get
- Return ResourceManager.GetString("PageDatabaseResults", resourceCulture)
+ Return ResourceManager.GetString("Home_SubmitResults", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Watched Folders 的本地化字符串。
+ ''' 查找类似 Uncompress 的本地化字符串。
'''
- Public Shared ReadOnly Property PageFolderWatcherCardWatchedFoldersName() As String
+ Public Shared ReadOnly Property Home_Uncompress() As String
Get
- Return ResourceManager.GetString("PageFolderWatcherCardWatchedFoldersName", resourceCulture)
+ Return ResourceManager.GetString("Home_Uncompress", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Settings 的本地化字符串。
+ ''' 查找类似 Welcome 的本地化字符串。
'''
- Public Shared ReadOnly Property PageSettingsName() As String
+ Public Shared ReadOnly Property MessageWelcome() As String
Get
- Return ResourceManager.GetString("PageSettingsName", resourceCulture)
+ Return ResourceManager.GetString("MessageWelcome", resourceCulture)
End Get
End Property
'''
''' 查找类似 WatcherPage 的本地化字符串。
'''
- Public Shared ReadOnly Property PageWatcherName() As String
+ Public Shared ReadOnly Property PageNameWatcher() As String
Get
- Return ResourceManager.GetString("PageWatcherName", resourceCulture)
+ Return ResourceManager.GetString("PageNameWatcher", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Apply to all 的本地化字符串。
- '''
- Public Shared ReadOnly Property PendingCompressionApplyAll() As String
- Get
- Return ResourceManager.GetString("PendingCompressionApplyAll", resourceCulture)
- End Get
- End Property
-
- '''
- ''' 查找类似 Compression Mode 的本地化字符串。
+ ''' 查找类似 Background Watcher Settings 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionCompressionMode() As String
+ Public Shared ReadOnly Property SetBackgroundWatch() As String
Get
- Return ResourceManager.GetString("PendingCompressionCompressionMode", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Configuration 的本地化字符串。
+ ''' 查找类似 Compress folders: 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionConfiguration() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders() As String
Get
- Return ResourceManager.GetString("PendingCompressionConfiguration", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Skip file types likely to compress poorly 的本地化字符串。
+ ''' 查找类似 When System is Idle 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesLikelyPoorly() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_Idle() As String
Get
- Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesLikelyPoorly", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_Idle", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 For Steam Games:
- '''skips files based on database results
- '''
- '''For Non-Steam Folders:
- '''skips files based on compression estimate 的本地化字符串。
+ ''' 查找类似 Last ran: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesLikelyPoorlyTip() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_LastRanFormat() As String
Get
- Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesLikelyPoorlyTip", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_LastRanFormat", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Skip file types specified in settings 的本地化字符串。
+ ''' 查找类似 Never 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionConfigurationSkipFileTypesSpecified() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_Never() As String
Get
- Return ResourceManager.GetString("PendingCompressionConfigurationSkipFileTypesSpecified", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_Never", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 LZX 的本地化字符串。
+ ''' 查找类似 Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionModeLZX() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_NextScheduledFormat() As String
Get
- Return ResourceManager.GetString("PendingCompressionModeLZX", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_NextScheduledFormat", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 XPRESS 4K 的本地化字符串。
+ ''' 查找类似 On Schedule 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionModeXPRESS4K() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_OnSchedule() As String
Get
- Return ResourceManager.GetString("PendingCompressionModeXPRESS4K", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_OnSchedule", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Watch folder for changes 的本地化字符串。
+ ''' 查找类似 On Schedule if system is also idle 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionWatchFolderChanges() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_CompressFolders_OnScheduleIdle() As String
Get
- Return ResourceManager.GetString("PendingCompressionWatchFolderChanges", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_CompressFolders_OnScheduleIdle", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 XPRESS 16K 的本地化字符串。
+ ''' 查找类似 Monitor compressed folders for changes 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionXPRESSMode16K() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_FoldersChanges() As String
Get
- Return ResourceManager.GetString("PendingCompressionXPRESSMode16K", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_FoldersChanges", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 XPRESS 8K 的本地化字符串。
+ ''' 查找类似 at 的本地化字符串。
'''
- Public Shared ReadOnly Property PendingCompressionXPRESSMode8K() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_Time_At() As String
Get
- Return ResourceManager.GetString("PendingCompressionXPRESSMode8K", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_Time_At", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 {0:0} days ago 的本地化字符串。
+ ''' 查找类似 day(s) 的本地化字符串。
'''
- Public Shared ReadOnly Property RelativeTimeDaysAgo() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_Time_Day() As String
Get
- Return ResourceManager.GetString("RelativeTimeDaysAgo", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_Time_Day", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 {0:0} hours ago 的本地化字符串。
+ ''' 查找类似 every 的本地化字符串。
'''
- Public Shared ReadOnly Property RelativeTimeHoursAgo() As String
+ Public Shared ReadOnly Property SetBackgroundWatch_Time_Every() As String
Get
- Return ResourceManager.GetString("RelativeTimeHoursAgo", resourceCulture)
+ Return ResourceManager.GetString("SetBackgroundWatch_Time_Every", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 just now 的本地化字符串。
+ ''' 查找类似 Compression Settings 的本地化字符串。
'''
- Public Shared ReadOnly Property RelativeTimeJustNow() As String
+ Public Shared ReadOnly Property SetCompression() As String
Get
- Return ResourceManager.GetString("RelativeTimeJustNow", resourceCulture)
+ Return ResourceManager.GetString("SetCompression", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 {0:0} minutes ago 的本地化字符串。
+ ''' 查找类似 HDDs only use 1 thread 的本地化字符串。
'''
- Public Shared ReadOnly Property RelativeTimeMinutesAgo() As String
+ Public Shared ReadOnly Property SetCompression_HDDThread() As String
Get
- Return ResourceManager.GetString("RelativeTimeMinutesAgo", resourceCulture)
+ Return ResourceManager.GetString("SetCompression_HDDThread", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Unknown 的本地化字符串。
+ ''' 查找类似 Maximum Compression Threads 的本地化字符串。
'''
- Public Shared ReadOnly Property RelativeTimeUnknown() As String
+ Public Shared ReadOnly Property SetCompression_MaxThreads() As String
Get
- Return ResourceManager.GetString("RelativeTimeUnknown", resourceCulture)
+ Return ResourceManager.GetString("SetCompression_MaxThreads", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 After 的本地化字符串。
+ ''' 查找类似 Estimate Compression for non-Steam Folders (beta) 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateAfter() As String
+ Public Shared ReadOnly Property SetCompression_NonSteamFolders() As String
Get
- Return ResourceManager.GetString("ResultsTemplateAfter", resourceCulture)
+ Return ResourceManager.GetString("SetCompression_NonSteamFolders", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Before 的本地化字符串。
+ ''' 查找类似 Filetype Management 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateBefore() As String
+ Public Shared ReadOnly Property SetFiletypeManagement() As String
Get
- Return ResourceManager.GetString("ResultsTemplateBefore", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compress Again 的本地化字符串。
+ ''' 查找类似 Manage local skipped filetypes 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateCompressAgain() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_LocalSkipFiletypes() As String
Get
- Return ResourceManager.GetString("ResultsTemplateCompressAgain", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_LocalSkipFiletypes", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compression Mode 的本地化字符串。
+ ''' 查找类似 edit skipped filetypes 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateCompressionMode() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_LocalSkipFiletypesEdit() As String
Get
- Return ResourceManager.GetString("ResultsTemplateCompressionMode", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_LocalSkipFiletypesEdit", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compression Summary 的本地化字符串。
+ ''' 查找类似 Agression of online skiplist 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateCompressionSummary() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_OnlineSkiplistAgression() As String
Get
- Return ResourceManager.GetString("ResultsTemplateCompressionSummary", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_OnlineSkiplistAgression", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Files Compressed 的本地化字符串。
+ ''' 查找类似 high 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateFilesCompressed() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_OnlineSkiplistAgressionHigh() As String
Get
- Return ResourceManager.GetString("ResultsTemplateFilesCompressed", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_OnlineSkiplistAgressionHigh", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Space Saved 的本地化字符串。
+ ''' 查找类似 low 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateSpaceSaved() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_OnlineSkiplistAgressionLow() As String
Get
- Return ResourceManager.GetString("ResultsTemplateSpaceSaved", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_OnlineSkiplistAgressionLow", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Submit Results 的本地化字符串。
+ ''' 查找类似 medium 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateSubmitResults() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_OnlineSkiplistAgressionMedium() As String
Get
- Return ResourceManager.GetString("ResultsTemplateSubmitResults", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_OnlineSkiplistAgressionMedium", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Uncompress 的本地化字符串。
+ ''' 查找类似 For Steam games only.
+ '''When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it.
+ ''''low' is generally best, as higher options run the risk of skipping files that would otherwise compress well. 的本地化字符串。
'''
- Public Shared ReadOnly Property ResultsTemplateUncompress() As String
+ Public Shared ReadOnly Property SetFiletypeManagement_OnlineSkiplistAgressionTip() As String
Get
- Return ResourceManager.GetString("ResultsTemplateUncompress", resourceCulture)
+ Return ResourceManager.GetString("SetFiletypeManagement_OnlineSkiplistAgressionTip", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Background Watcher Settings 的本地化字符串。
+ ''' 查找类似 System Integration 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettings() As String
+ Public Shared ReadOnly Property SetSystemIntegration() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettings", resourceCulture)
+ Return ResourceManager.GetString("SetSystemIntegration", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compress folders: 的本地化字符串。
+ ''' 查找类似 Show notification on completion 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFolders() As String
+ Public Shared ReadOnly Property SetSystemIntegration_CompletionNotification() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFolders", resourceCulture)
+ Return ResourceManager.GetString("SetSystemIntegration_CompletionNotification", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 When System is Idle 的本地化字符串。
+ ''' 查找类似 Add to right-click context menu 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersIdle() As String
+ Public Shared ReadOnly Property SetSystemIntegration_RightClickMenu() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersIdle", resourceCulture)
+ Return ResourceManager.GetString("SetSystemIntegration_RightClickMenu", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Last ran: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
+ ''' 查找类似 Add to start menu 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersLastRanFormat() As String
+ Public Shared ReadOnly Property SetSystemIntegration_StartMenu() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersLastRanFormat", resourceCulture)
+ Return ResourceManager.GetString("SetSystemIntegration_StartMenu", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Never 的本地化字符串。
+ ''' 查找类似 Start CompactGUI in system tray 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersNever() As String
+ Public Shared ReadOnly Property SetSystemIntegration_Startup() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersNever", resourceCulture)
+ Return ResourceManager.GetString("SetSystemIntegration_Startup", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss} 的本地化字符串。
+ ''' 查找类似 UI Settings 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersNextScheduledFormat() As String
+ Public Shared ReadOnly Property SetUi() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersNextScheduledFormat", resourceCulture)
+ Return ResourceManager.GetString("SetUi", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 On Schedule 的本地化字符串。
+ ''' 查找类似 Always show details on Compression Mode buttons 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersOnSchedule() As String
+ Public Shared ReadOnly Property SetUi_CompressionDetails() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersOnSchedule", resourceCulture)
+ Return ResourceManager.GetString("SetUi_CompressionDetails", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 On Schedule if system is also idle 的本地化字符串。
+ ''' 查找类似 Language (Requires Restart) 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsCompressFoldersOnScheduleIdle() As String
+ Public Shared ReadOnly Property SetUi_LanguageChanged() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsCompressFoldersOnScheduleIdle", resourceCulture)
+ Return ResourceManager.GetString("SetUi_LanguageChanged", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Monitor compressed folders for changes 的本地化字符串。
+ ''' 查找类似 Language changed successfully. You may need to restart the application for all changes to take effect. 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsFoldersChanges() As String
+ Public Shared ReadOnly Property SetUi_LanguageChangedMsg() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsFoldersChanges", resourceCulture)
+ Return ResourceManager.GetString("SetUi_LanguageChangedMsg", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 at 的本地化字符串。
+ ''' 查找类似 Language Changed 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeAt() As String
+ Public Shared ReadOnly Property SetUi_LanguageChangedTitle() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeAt", resourceCulture)
+ Return ResourceManager.GetString("SetUi_LanguageChangedTitle", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 day(s) 的本地化字符串。
+ ''' 查找类似 Update Settings 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeDay() As String
+ Public Shared ReadOnly Property SetUpdate() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeDay", resourceCulture)
+ Return ResourceManager.GetString("SetUpdate", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 every 的本地化字符串。
+ ''' 查找类似 Check for pre-release updates 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsBackgroundWatcherSettingsTimeEvery() As String
+ Public Shared ReadOnly Property SetUpdate_CheckPreUpdates() As String
Get
- Return ResourceManager.GetString("SettingsBackgroundWatcherSettingsTimeEvery", resourceCulture)
+ Return ResourceManager.GetString("SetUpdate_CheckPreUpdates", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Compression Settings 的本地化字符串。
+ ''' 查找类似 After 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsCompressionSettingsCompressionSettings() As String
+ Public Shared ReadOnly Property Status_After() As String
Get
- Return ResourceManager.GetString("SettingsCompressionSettingsCompressionSettings", resourceCulture)
+ Return ResourceManager.GetString("Status_After", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 HDDs only use 1 thread 的本地化字符串。
+ ''' 查找类似 Before 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsCompressionSettingsHDDThread() As String
+ Public Shared ReadOnly Property Status_Before() As String
Get
- Return ResourceManager.GetString("SettingsCompressionSettingsHDDThread", resourceCulture)
+ Return ResourceManager.GetString("Status_Before", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Maximum Compression Threads 的本地化字符串。
+ ''' 查找类似 Compression Mode 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsCompressionSettingsMaxThreads() As String
+ Public Shared ReadOnly Property Status_CompressionMode() As String
Get
- Return ResourceManager.GetString("SettingsCompressionSettingsMaxThreads", resourceCulture)
+ Return ResourceManager.GetString("Status_CompressionMode", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Estimate Compression for non-Steam Folders (beta) 的本地化字符串。
+ ''' 查找类似 Compression Summary 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsCompressionSettingsNonSteamFolders() As String
+ Public Shared ReadOnly Property Status_CompressionSummary() As String
Get
- Return ResourceManager.GetString("SettingsCompressionSettingsNonSteamFolders", resourceCulture)
+ Return ResourceManager.GetString("Status_CompressionSummary", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Filetype Management 的本地化字符串。
+ ''' 查找类似 contained files 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagement() As String
+ Public Shared ReadOnly Property Status_ContainedFiles() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagement", resourceCulture)
+ Return ResourceManager.GetString("Status_ContainedFiles", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 high 的本地化字符串。
+ ''' 查找类似 Files Compressed 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementAgressionHigh() As String
+ Public Shared ReadOnly Property Status_FilesCompressed() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementAgressionHigh", resourceCulture)
+ Return ResourceManager.GetString("Status_FilesCompressed", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 low 的本地化字符串。
+ ''' 查找类似 Last Fetched: {0:dd MMM yyyy HH:mm:ss} 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementAgressionLow() As String
+ Public Shared ReadOnly Property Status_LastFetched() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementAgressionLow", resourceCulture)
+ Return ResourceManager.GetString("Status_LastFetched", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 medium 的本地化字符串。
+ ''' 查找类似 Results State 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementAgressionMedium() As String
+ Public Shared ReadOnly Property Status_ResultsState() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementAgressionMedium", resourceCulture)
+ Return ResourceManager.GetString("Status_ResultsState", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 For Steam games only.
- '''When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it.
- ''''low' is generally best, as higher options run the risk of skipping files that would otherwise compress well. 的本地化字符串。
+ ''' 查找类似 Space Saved 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementAgressionTip() As String
+ Public Shared ReadOnly Property Status_SpaceSaved() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementAgressionTip", resourceCulture)
+ Return ResourceManager.GetString("Status_SpaceSaved", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Manage local skipped filetypes 的本地化字符串。
+ ''' 查找类似 uncompressed size 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementLocalSkipFiletypes() As String
+ Public Shared ReadOnly Property Status_UncompressedSize() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementLocalSkipFiletypes", resourceCulture)
+ Return ResourceManager.GetString("Status_UncompressedSize", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Agression of online skiplist 的本地化字符串。
+ ''' 查找类似 Working 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsFiletypeManagementOnlineSkiplistAgression() As String
+ Public Shared ReadOnly Property Status_Working() As String
Get
- Return ResourceManager.GetString("SettingsFiletypeManagementOnlineSkiplistAgression", resourceCulture)
+ Return ResourceManager.GetString("Status_Working", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 edit skipped filetypes 的本地化字符串。
+ ''' 查找类似 {0:0} days ago 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSkiplistflyoutEditSkippedFiletypes() As String
+ Public Shared ReadOnly Property Time_DaysAgo() As String
Get
- Return ResourceManager.GetString("SettingsSkiplistflyoutEditSkippedFiletypes", resourceCulture)
+ Return ResourceManager.GetString("Time_DaysAgo", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 System Integration 的本地化字符串。
+ ''' 查找类似 {0:0} hours ago 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSystemIntegration() As String
+ Public Shared ReadOnly Property Time_HoursAgo() As String
Get
- Return ResourceManager.GetString("SettingsSystemIntegration", resourceCulture)
+ Return ResourceManager.GetString("Time_HoursAgo", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Show notification on completion 的本地化字符串。
+ ''' 查找类似 {0:0} minutes ago 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSystemIntegrationNotificationOnCompletion() As String
+ Public Shared ReadOnly Property Time_MinutesAgo() As String
Get
- Return ResourceManager.GetString("SettingsSystemIntegrationNotificationOnCompletion", resourceCulture)
+ Return ResourceManager.GetString("Time_MinutesAgo", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Add to right-click context menu 的本地化字符串。
+ ''' 查找类似 just now 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSystemIntegrationRightClickMenu() As String
+ Public Shared ReadOnly Property Time_Now() As String
Get
- Return ResourceManager.GetString("SettingsSystemIntegrationRightClickMenu", resourceCulture)
+ Return ResourceManager.GetString("Time_Now", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Add to start menu 的本地化字符串。
+ ''' 查找类似 Unknown 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSystemIntegrationStartMenu() As String
+ Public Shared ReadOnly Property Time_Unknown() As String
Get
- Return ResourceManager.GetString("SettingsSystemIntegrationStartMenu", resourceCulture)
+ Return ResourceManager.GetString("Time_Unknown", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Start CompactGUI in system tray 的本地化字符串。
+ ''' 查找类似 CompactGUI 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsSystemIntegrationSystemTrayStartup() As String
+ Public Shared ReadOnly Property Title_CompactGUI() As String
Get
- Return ResourceManager.GetString("SettingsSystemIntegrationSystemTrayStartup", resourceCulture)
+ Return ResourceManager.GetString("Title_CompactGUI", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 UI Settings 的本地化字符串。
+ ''' 查找类似 Compression DB 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUiSettings() As String
+ Public Shared ReadOnly Property Title_CompressionDB() As String
Get
- Return ResourceManager.GetString("SettingsUiSettings", resourceCulture)
+ Return ResourceManager.GetString("Title_CompressionDB", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Always show details on Compression Mode buttons 的本地化字符串。
+ ''' 查找类似 Home 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUiSettingsCompressionButtons() As String
+ Public Shared ReadOnly Property Title_Home() As String
Get
- Return ResourceManager.GetString("SettingsUiSettingsCompressionButtons", resourceCulture)
+ Return ResourceManager.GetString("Title_Home", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Language (Requires Restart) 的本地化字符串。
+ ''' 查找类似 Watcher 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUiSettingsLanguageChangedLabel() As String
+ Public Shared ReadOnly Property Title_Watcher() As String
Get
- Return ResourceManager.GetString("SettingsUiSettingsLanguageChangedLabel", resourceCulture)
+ Return ResourceManager.GetString("Title_Watcher", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Language changed successfully. You may need to restart the application for all changes to take effect. 的本地化字符串。
+ ''' 查找类似 Admin 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUiSettingsLanguageChangedMsg() As String
+ Public Shared ReadOnly Property UniAdmin() As String
Get
- Return ResourceManager.GetString("SettingsUiSettingsLanguageChangedMsg", resourceCulture)
+ Return ResourceManager.GetString("UniAdmin", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Language Changed 的本地化字符串。
+ ''' 查找类似 edit 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUiSettingsLanguageChangeTitle() As String
+ Public Shared ReadOnly Property UniEdit() As String
Get
- Return ResourceManager.GetString("SettingsUiSettingsLanguageChangeTitle", resourceCulture)
+ Return ResourceManager.GetString("UniEdit", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Update Settings 的本地化字符串。
+ ''' 查找类似 Reset 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUpdateSettings() As String
+ Public Shared ReadOnly Property UniReset() As String
Get
- Return ResourceManager.GetString("SettingsUpdateSettings", resourceCulture)
+ Return ResourceManager.GetString("UniReset", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Check for pre-release updates 的本地化字符串。
+ ''' 查找类似 Save 的本地化字符串。
'''
- Public Shared ReadOnly Property SettingsUpdateSettingsCheckPreUpdates() As String
+ Public Shared ReadOnly Property UniSave() As String
Get
- Return ResourceManager.GetString("SettingsUpdateSettingsCheckPreUpdates", resourceCulture)
+ Return ResourceManager.GetString("UniSave", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 CompactGUI 的本地化字符串。
+ ''' 查找类似 Cancel Background Compressor 的本地化字符串。
'''
- Public Shared ReadOnly Property TitleCompactGUI() As String
+ Public Shared ReadOnly Property Watcher_CancelBackgroundCompressor() As String
Get
- Return ResourceManager.GetString("TitleCompactGUI", resourceCulture)
+ Return ResourceManager.GetString("Watcher_CancelBackgroundCompressor", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Admin 的本地化字符串。
+ ''' 查找类似 Compress All Now 的本地化字符串。
'''
- Public Shared ReadOnly Property UniAdmin() As String
+ Public Shared ReadOnly Property Watcher_CompressAllNow() As String
Get
- Return ResourceManager.GetString("UniAdmin", resourceCulture)
+ Return ResourceManager.GetString("Watcher_CompressAllNow", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 edit 的本地化字符串。
+ ''' 查找类似 Last analysed 的本地化字符串。
'''
- Public Shared ReadOnly Property UniEdit() As String
+ Public Shared ReadOnly Property Watcher_LastAnalysed() As String
Get
- Return ResourceManager.GetString("UniEdit", resourceCulture)
+ Return ResourceManager.GetString("Watcher_LastAnalysed", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Reset 的本地化字符串。
+ ''' 查找类似 Watched Folders 的本地化字符串。
'''
- Public Shared ReadOnly Property UniReset() As String
+ Public Shared ReadOnly Property Watcher_WatchedFolders() As String
Get
- Return ResourceManager.GetString("UniReset", resourceCulture)
+ Return ResourceManager.GetString("Watcher_WatchedFolders", resourceCulture)
End Get
End Property
'''
- ''' 查找类似 Save 的本地化字符串。
+ ''' 查找类似 saved 的本地化字符串。
'''
- Public Shared ReadOnly Property UniSave() As String
+ Public Shared ReadOnly Property Watcher_WatchedSaved() As String
Get
- Return ResourceManager.GetString("UniSave", resourceCulture)
+ Return ResourceManager.GetString("Watcher_WatchedSaved", resourceCulture)
End Get
End Property
End Class
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index 18176f9..bcb88de 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -120,274 +120,262 @@
Welcome
-
+
Language (Requires Restart)
-
+
Language changed successfully. You may need to restart the application for all changes to take effect.
-
+
Language Changed
-
+
UI Settings
-
+
Always show details on Compression Mode buttons
-
+
Update Settings
-
+
Check for pre-release updates
-
+
Background Watcher Settings
-
+
Monitor compressed folders for changes
-
+
Compress folders:
@MutedRule(WhiteSpaceTail)
-
+
every
-
+
day(s)
-
+
at
@MutedRule(WhiteSpaceLead)@MutedRule(WhiteSpaceTail)
-
+
Compression Settings
-
+
Maximum Compression Threads
-
+
HDDs only use 1 thread
-
+
Estimate Compression for non-Steam Folders (beta)
-
+
System Integration
-
+
Add to right-click context menu
-
+
Add to start menu
-
+
Show notification on completion
-
+
Start CompactGUI in system tray
-
+
Filetype Management
-
+
Manage local skipped filetypes
edit
-
+
Agression of online skiplist
-
+
For Steam games only.
When choosing to skip user-submitted filetypes, this setting determines how many submissions are required for each filetype to consider skipping it.
'low' is generally best, as higher options run the risk of skipping files that would otherwise compress well.
-
+
low
-
+
medium
-
+
high
-
+
Settings
-
+
WatcherPage
-
+
Database Results
-
+
Search by game name or SteamID...
-
+
Sort By
-
+
Game Name
-
+
SteamID
-
+
Max Savings
-
+
Games
-
+
uncompressed size
-
+
contained files
-
+
Add Folder to Queue
-
+
Compress Selected
-
+
Working
-
+
Results State
-
+
Compression Mode
-
+
XPRESS 4K
@Invariant
-
+
XPRESS 8K
@Invariant
-
+
XPRESS 16K
@Invariant
-
+
LZX
@Invariant
-
+
Configuration
-
+
Skip file types specified in settings
-
+
Skip file types likely to compress poorly
-
+
For Steam Games:
skips files based on database results
For Non-Steam Folders:
skips files based on compression estimate
-
+
Watch folder for changes
-
+
Apply to all
-
+
Estimated size
-
+
Savings
-
+
unknown
-
+
Watched Folders
-
+
saved
-
+
Cancel Background Compressor
-
+
Compress All Now
-
+
Last analysed
-
+
Unknown
-
+
{0:0} days ago
-
+
{0:0} hours ago
-
+
{0:0} minutes ago
-
+
just now
-
+
Compression Summary
-
+
Space Saved
-
+
Files Compressed
-
+
Compression Mode
-
+
Uncompress
-
+
Compress Again
-
+
Submit Results
-
+
Before
-
+
After
-
- MODE
-
-
- BEFORE
-
-
- AFTER
-
-
- SAVINGS
-
-
+
TOTAL RESULTS
-
+
Ascending
-
+
Descending
-
+
edit skipped filetypes
@@ -396,43 +384,43 @@ skips files based on compression estimate
Reset
-
+
Never
-
+
When System is Idle
-
+
On Schedule
-
+
On Schedule if system is also idle
-
+
Last ran: {0:dd MMM yyyy \a\t HH:mm:ss}
-
+
Next scheduled: {0:dd MMM yyyy \a\t HH:mm:ss}
-
+
CompactGUI
-
+
select a folder
Admin
-
+
Compression DB
-
+
Watcher
-
+
Home
-
+
Last Fetched: {0:dd MMM yyyy HH:mm:ss}
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index d1dab4b..d7ac907 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -117,250 +117,238 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
UI 设置
-
+
始终显示压缩模式按钮的详细信息
-
+
语言 (需要重启)
-
+
语言更改
-
+
语言更改成功。您可能需要重启应用程序以使所有更改生效。
-
+
更新设置
-
+
检查预发布更新
-
+
后台监控设置
-
+
监控已压缩文件夹的更改
-
+
压缩文件夹:
-
+
每
-
+
天
-
+
压缩设置
-
+
最大压缩线程数
-
+
HDD 仅使用 1 个线程
-
+
估算非 Steam 文件夹的压缩率 (测试版)
-
+
系统集成
-
+
添加到右键菜单
-
+
添加到开始菜单
-
+
完成后显示通知
-
+
在系统托盘启动 CompactGUI
-
+
文件类型管理
-
+
管理本地跳过的文件类型
编辑
-
+
在线跳过列表的激进程度
-
+
仅限 Steam 游戏。
在选择跳过用户提交的文件类型时,该设置决定了每种文件类型需要提交多少次才能考虑跳过该类型。
“低”通常是最好的,因为高档有跳过本来可以很好地压缩的文件的风险。
-
+
低
-
+
中
-
+
高
-
+
监控页
-
+
设置
-
+
数据库结果
-
+
按游戏名称或 SteamID 搜索...
-
+
排序方式
-
+
游戏名称
-
+
SteamID
-
+
最大节省
-
+
游戏列表
-
+
未压缩大小
-
+
包含文件
-
+
添加文件夹到队列
-
+
压缩选中项
-
+
正在处理
-
+
数据库状态
-
+
压缩模式
-
+
配置
-
+
跳过设置中指定的文件类型
-
+
跳过可能压缩效果不佳的文件类型
-
+
对于 Steam 游戏:
根据数据库结果跳过文件
对于非 Steam 文件夹:
基于压缩估计跳过文件
-
+
监控文件夹更改
-
+
应用到所有
-
+
预估大小
-
+
节省
-
+
未知
-
+
受监控文件夹
-
+
已节省
-
+
取消后台压缩
-
+
立即全部压缩
-
+
上次分析
-
+
未知
-
+
{0:0} 天前
-
+
{0:0} 小时前
-
+
{0:0} 分钟前
-
+
刚刚
-
+
压缩摘要
-
+
节省空间
-
+
文件已压缩
-
+
压缩模式
-
+
解压缩
-
+
再次压缩
-
+
提交结果
-
+
压缩前
-
+
压缩后
-
- 模式
-
-
- 压缩前
-
-
- 压缩后
-
-
- 节省
-
-
+
总结果
-
+
升序
-
+
降序
@@ -369,52 +357,52 @@
重置
-
+
编辑跳过类型
-
+
从不
-
+
当系统空闲时
-
+
按计划
-
+
按计划且系统空闲时
-
+
上次运行: {0:yyyy年 M月 d日 HH:mm:ss}
-
+
下次计划: {0:yyyy年 M月 d日 HH:mm:ss}
欢迎
-
+
管理员权限
-
+
选择文件夹
-
+
CompactGUI
-
+
压缩数据库
-
+
监控
-
+
主页
-
+
最后获取: {0:yyyy年 M月 d日 HH:mm:ss}
\ No newline at end of file
From 0afd9171a382cee0be4eded8e6447a44a7663c23 Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Thu, 1 Jan 2026 19:07:29 +0800
Subject: [PATCH 7/9] i18n Complete
---
CompactGUI/Application.xaml.vb | 2 +-
.../Components/Converters/IValueConverters.vb | 12 +-
CompactGUI/LanguageHelper.vb | 27 +-
CompactGUI/MainWindow.xaml | 4 +-
CompactGUI/Services/CustomSnackBarService.vb | 35 +-
CompactGUI/Services/WindowService.vb | 4 +-
CompactGUI/ViewModels/FolderViewModel.vb | 6 +-
CompactGUI/ViewModels/MainWindowViewModel.vb | 3 +-
.../Components/CompressionMode_Radio.xaml | 2 +-
.../Views/Components/FolderWatcherCard.xaml | 24 +-
.../Views/Pages/PendingCompression.xaml | 32 +-
CompactGUI/Views/SettingsPage.xaml.vb | 4 +-
CompactGUI/i18n/i18n.Designer.vb | 357 +++++++++++++++++-
CompactGUI/i18n/i18n.resx | 123 +++++-
CompactGUI/i18n/i18n.zh-CN.resx | 115 +++++-
15 files changed, 671 insertions(+), 79 deletions(-)
diff --git a/CompactGUI/Application.xaml.vb b/CompactGUI/Application.xaml.vb
index e5c360c..07ca15f 100644
--- a/CompactGUI/Application.xaml.vb
+++ b/CompactGUI/Application.xaml.vb
@@ -32,7 +32,7 @@ Partial Public Class Application
End Sub
Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
- ' 启动时调用语言配置
+ ' Call the language configuration at startup
LanguageHelper.Initialize()
End Sub
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index 9b59a73..39fb608 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -102,7 +102,7 @@ Public Class RelativeDateConverter : Implements IValueConverter
ElseIf ts > TimeSpan.FromMinutes(2) Then
Return String.Format(LanguageHelper.GetString("Time_MinutesAgo"), ts.TotalMinutes)
Else
- Return LanguageHelper.GetString("Time_Now")
+ Return LanguageHelper.GetString("RelativeTimeJustNow")
End If
End Function
@@ -291,15 +291,15 @@ Public Class FolderStatusToStringConverter : Implements IValueConverter
Dim status = CType(value, ActionState)
Select Case status
Case ActionState.Idle
- Return "Awaiting Compression"
+ Return LanguageHelper.GetString("Status_AwaitingCompression")
Case ActionState.Analysing
- Return "Analysing"
+ Return LanguageHelper.GetString("Status_Analysing")
Case ActionState.Working, ActionState.Paused
- Return "Working"
+ Return LanguageHelper.GetString("Status_Working")
Case ActionState.Results
- Return "Compressed"
+ Return LanguageHelper.GetString("Status_Compressed")
Case Else
- Return "Unknown"
+ Return LanguageHelper.GetString("Status_Unknown")
End Select
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
diff --git a/CompactGUI/LanguageHelper.vb b/CompactGUI/LanguageHelper.vb
index 8dcb0f2..f373aba 100644
--- a/CompactGUI/LanguageHelper.vb
+++ b/CompactGUI/LanguageHelper.vb
@@ -6,7 +6,7 @@ Imports System.Windows.Data
Imports System.Reflection
Public Class LanguageHelper
- ' 支持的语言列表
+ ' Supported language list
' @i18n
Private Shared ReadOnly SupportedCultures As String() = {"en-US", "zh-CN"}
Private Shared resourceManager As ResourceManager = i18n.i18n.ResourceManager
@@ -49,7 +49,7 @@ Public Class LanguageHelper
Return rawValue
End If
Catch ex As Exception
- Debug.WriteLine($"获取多语言文本失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Failed to get multilingual text:{key},Error:{ex.Message}")
Return key
End Try
End Function
@@ -62,7 +62,7 @@ Public Class LanguageHelper
currentCulture = culture
Catch ex As Exception
- Debug.WriteLine($"应用语言失败:{cultureName},错误:{ex.Message}")
+ Debug.WriteLine($"Application language failure:{cultureName},Error:{ex.Message}")
SetDefaultLanguage()
End Try
End Sub
@@ -79,31 +79,16 @@ Public Class LanguageHelper
End Function
Private Shared Sub SetDefaultLanguage()
- ' 根据系统语言设置默认语言
+ ' Set the default language according to the system language.
'@i18n
Dim langMapping As New Dictionary(Of String, String) From {
{"en", "en-US"},
{"zh", "zh-CN"}
}
- '{"ja", "ja-JP"},
- '{"ko", "ko-KR"},
- '{"fr", "fr-FR"},
- '{"de", "de-DE"},
- '{"es", "es-ES"},
- '{"ru", "ru-RU"}
Dim systemLang As String = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower()
Dim defaultLang As String = If(langMapping.ContainsKey(systemLang), langMapping(systemLang), "en-US")
- ' 特殊处理中文简/繁
- 'If systemLang = "zh" Then
- ' If Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-TW") Then
- ' defaultLang = "zh-TW"
- ' ElseIf Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-HK") Then
- ' defaultLang = "zh-HK"
- ' End If
- 'End If
-
ApplyCulture(defaultLang)
WriteAppConfig("language", defaultLang)
End Sub
@@ -117,7 +102,7 @@ Public Class LanguageHelper
Dim config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
Return If(config.AppSettings.Settings(key)?.Value, String.Empty)
Catch ex As Exception
- Debug.WriteLine($"读取配置失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Read configuration failed:{key},Error:{ex.Message}")
Return String.Empty
End Try
End Function
@@ -133,7 +118,7 @@ Public Class LanguageHelper
config.Save(System.Configuration.ConfigurationSaveMode.Modified)
System.Configuration.ConfigurationManager.RefreshSection("appSettings")
Catch ex As Exception
- Debug.WriteLine($"写入配置失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Write configuration failed:{key},Error:{ex.Message}")
End Try
End Sub
End Class
diff --git a/CompactGUI/MainWindow.xaml b/CompactGUI/MainWindow.xaml
index a3ae737..1487863 100644
--- a/CompactGUI/MainWindow.xaml
+++ b/CompactGUI/MainWindow.xaml
@@ -259,8 +259,8 @@
FocusOnLeftClick="True" MenuOnRightClick="True" TooltipText="CompactGUI">
-
-
+
+
diff --git a/CompactGUI/Services/CustomSnackBarService.vb b/CompactGUI/Services/CustomSnackBarService.vb
index f448b15..17829df 100644
--- a/CompactGUI/Services/CustomSnackBarService.vb
+++ b/CompactGUI/Services/CustomSnackBarService.vb
@@ -20,7 +20,7 @@ Public Class CustomSnackBarService
Public Sub ShowCustom(message As UIElement, title As String, appearance As ControlAppearance, Optional icon As IconElement = Nothing, Optional timeout As TimeSpan = Nothing)
- If GetSnackbarPresenter() Is Nothing Then Throw New InvalidOperationException("The SnackbarPresenter was never set")
+ If GetSnackbarPresenter() Is Nothing Then Throw New InvalidOperationException(LanguageHelper.GetString("SnackBar_SnackbarPresenter")) 'The SnackbarPresenter was never set
If _snackbar Is Nothing Then _snackbar = New Snackbar(GetSnackbarPresenter())
_snackbar.SetCurrentValue(Snackbar.TitleProperty, title)
@@ -52,20 +52,21 @@ Public Class CustomSnackBarService
Public Sub ShowInsufficientPermission(folderName As String)
Dim button = New Button With {
- .Content = "Restart as Admin",
+ .Content = LanguageHelper.GetString("SnackBar_RestartAdmin"), '"Restart as Admin"
.Command = New RelayCommand(Sub() RunAsAdmin(folderName)),
.Margin = New Thickness(-3, 10, 0, 0)
}
- ShowCustom(button, "Insufficient permission to access this folder.", ControlAppearance.Danger, timeout:=TimeSpan.FromSeconds(60))
+ ShowCustom(button, LanguageHelper.GetString("SnackBar_RestartAdminTip"), ControlAppearance.Danger, timeout:=TimeSpan.FromSeconds(60)) '"Insufficient permission to access this folder."
End Sub
Public Sub ShowUpdateAvailable(newVersion As String, isPreRelease As Boolean)
Dim textBlock = New TextBlock
- textBlock.Text = "Click to download"
+ textBlock.Text = LanguageHelper.GetString("SnackBar_UpdateDownload") '"Click to download"
' Show the custom snackbar
SnackbarServiceLog.ShowUpdateAvailable(logger, newVersion, isPreRelease)
- ShowCustom(textBlock, $"Update Available ▸ Version {newVersion}", If(isPreRelease, ControlAppearance.Info, ControlAppearance.Success), timeout:=TimeSpan.FromSeconds(10))
+ Dim title As String = String.Format(LanguageHelper.GetString("SnackBar_UpdateAvailable"), newVersion) 'Update Available ▸ Version {newVersion}
+ ShowCustom(textBlock, title, If(isPreRelease, ControlAppearance.Info, ControlAppearance.Success), timeout:=TimeSpan.FromSeconds(10))
Dim handler As MouseButtonEventHandler = Nothing
Dim closedHandler As TypedEventHandler(Of Snackbar, RoutedEventArgs) = Nothing
@@ -86,37 +87,49 @@ Public Class CustomSnackBarService
End Sub
Public Sub ShowFailedToSubmitToWiki()
- Show("Failed to submit to wiki", "Please check your internet connection and try again", Wpf.Ui.Controls.ControlAppearance.Danger, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_SubmitWikiFailed"), LanguageHelper.GetString("SnackBar_SubmitWikiFailedTip"), Wpf.Ui.Controls.ControlAppearance.Danger, Nothing, TimeSpan.FromSeconds(5))
+ '"Failed to submit to wiki", "Please check your internet connection and try again"
SnackbarServiceLog.ShowFailedToSubmitToWiki(logger)
End Sub
Public Sub ShowSubmittedToWiki(steamsubmitdata As SteamSubmissionData, compressionMode As Integer)
- Show("Submitted to wiki", $"UID: {steamsubmitdata.UID}{vbCrLf}Game: {steamsubmitdata.GameName}{vbCrLf}SteamID: {steamsubmitdata.SteamID}{vbCrLf}Compression: {[Enum].GetName(GetType(Core.WOFCompressionAlgorithm), Core.WOFHelper.WOFConvertCompressionLevel(compressionMode))}", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(10))
+ Dim compressionName As String = [Enum].GetName(GetType(Core.WOFCompressionAlgorithm), Core.WOFHelper.WOFConvertCompressionLevel(compressionMode))
+ Dim message As String = $"{LanguageHelper.GetString("SnackBar_SubmitWiki_UID")}: {steamsubmitdata.UID}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_Game")}: {steamsubmitdata.GameName}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_SteamID")}: {steamsubmitdata.SteamID}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_Compression")}: {compressionName}"
+ 'Show("Submitted to wiki", $"UID: {0}{1}Game: {2}{1}SteamID: {3}{1}Compression: {4}
+
+ Show(LanguageHelper.GetString("SnackBar_SubmitWiki"), message, Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(10))
SnackbarServiceLog.ShowSubmittedToWiki(logger, steamsubmitdata.UID, steamsubmitdata.GameName, steamsubmitdata.SteamID, steamsubmitdata.CompressionMode)
End Sub
Public Sub ShowAppliedToAllFolders()
- Show("Applied to all folders", "Compression options have been applied to all folders", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_AppliedAllFolders"), LanguageHelper.GetString("SnackBar_AppliedAllFoldersTip"), Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ '"Applied to all folders", "Compression options have been applied to all folders"
SnackbarServiceLog.ShowAppliedToAllFolders(logger)
End Sub
Public Sub ShowCannotRemoveFolder()
- Show("Cannot remove folder", "Please wait until the current operation is finished", Wpf.Ui.Controls.ControlAppearance.Caution, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_CannotRemoveFolder"), LanguageHelper.GetString("SnackBar_CannotRemoveFolderTip"), Wpf.Ui.Controls.ControlAppearance.Caution, Nothing, TimeSpan.FromSeconds(5))
+ '"Cannot remove folder", "Please wait until the current operation is finished"
SnackbarServiceLog.ShowCannotRemoveFolder(logger)
End Sub
Public Sub ShowAddedToQueue()
- Show("Success", "Added to Queue", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_Success"), LanguageHelper.GetString("SnackBar_SuccessTip"), Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ '"Success", "Added to Queue"
SnackbarServiceLog.ShowAddedToQueue(logger)
End Sub
Public Sub ShowDirectStorageWarning(displayName As String)
Show(displayName,
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.",
+ LanguageHelper.GetString("SnackBar_DirectStorageTechnology"),
Wpf.Ui.Controls.ControlAppearance.Info,
Nothing,
TimeSpan.FromSeconds(20))
+ '"This game uses DirectStorage technology. If you are using this feature, you should not compress this game.",
SnackbarServiceLog.ShowDirectStorageWarning(logger, displayName)
End Sub
End Class
\ No newline at end of file
diff --git a/CompactGUI/Services/WindowService.vb b/CompactGUI/Services/WindowService.vb
index fab6e09..764aefe 100644
--- a/CompactGUI/Services/WindowService.vb
+++ b/CompactGUI/Services/WindowService.vb
@@ -33,8 +33,8 @@ Public Class WindowService
.Title = title,
.Content = content,
.IsPrimaryButtonEnabled = True,
- .PrimaryButtonText = "Yes",
- .CloseButtonText = "Cancel"
+ .PrimaryButtonText = LanguageHelper.GetString("UniYes"),
+ .CloseButtonText = LanguageHelper.GetString("UniCancel")
}
Dim result = Await msgBox.ShowDialogAsync()
Return result = Wpf.Ui.Controls.MessageBoxResult.Primary
diff --git a/CompactGUI/ViewModels/FolderViewModel.vb b/CompactGUI/ViewModels/FolderViewModel.vb
index 76bb4c3..a8d96cf 100644
--- a/CompactGUI/ViewModels/FolderViewModel.vb
+++ b/CompactGUI/ViewModels/FolderViewModel.vb
@@ -58,10 +58,10 @@ Public NotInheritable Class FolderViewModel : Inherits ObservableObject : Implem
Public ReadOnly Property CompressionDisplayLevel As String
Get
If Folder.AnalysisResults Is Nothing OrElse
- Not Folder.AnalysisResults.Any(Function(x) x.CompressionMode <> Core.WOFCompressionAlgorithm.NO_COMPRESSION) Then
- Return "Not Compressed"
+ Not Folder.AnalysisResults.Any(Function(x) x.CompressionMode <> Core.WOFCompressionAlgorithm.NO_COMPRESSION) Then
+ Return LanguageHelper.GetString("Status_NotCompressed") 'Not Compressed
End If
- Return "Compressed"
+ Return LanguageHelper.GetString("Status_Compressed") 'Compressed
End Get
End Property
diff --git a/CompactGUI/ViewModels/MainWindowViewModel.vb b/CompactGUI/ViewModels/MainWindowViewModel.vb
index 7cc23ad..ffcd00c 100644
--- a/CompactGUI/ViewModels/MainWindowViewModel.vb
+++ b/CompactGUI/ViewModels/MainWindowViewModel.vb
@@ -39,7 +39,8 @@ Partial Public Class MainWindowViewModel : Inherits ObservableRecipient : Implem
Private Async Function NotifyIconExit() As Task
If _watcher.WatchedFolders.Count = 0 Then Application.Current.Shutdown()
- Dim confirmed = Await _windowService.ShowMessageBox("CompactGUI", $"You currently have {_watcher.WatchedFolders.Count} folders being watched. Closing CompactGUI will stop them from being monitored.{Environment.NewLine}{Environment.NewLine}Are you sure you want to exit?")
+ Dim message As String = String.Format(LanguageHelper.GetString("MessageBox_ExitText"), _watcher.WatchedFolders.Count)
+ Dim confirmed = Await _windowService.ShowMessageBox(LanguageHelper.GetString("Title_CompactGUI"), message)
If Not confirmed Then Return
_watcher.WriteToFile()
Application.Current.Shutdown()
diff --git a/CompactGUI/Views/Components/CompressionMode_Radio.xaml b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
index 51a8c68..85dfc35 100644
--- a/CompactGUI/Views/Components/CompressionMode_Radio.xaml
+++ b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
@@ -33,7 +33,7 @@
+ FontSize="14" FontWeight="SemiBold">
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml b/CompactGUI/Views/Components/FolderWatcherCard.xaml
index 012b13c..1efd4ed 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml
@@ -51,11 +51,11 @@
Command="{Binding ManuallyAddFolderToWatcherCommand}">
-
+
-
@@ -97,7 +97,7 @@
-
@@ -236,11 +236,11 @@
-
-
@@ -278,7 +280,7 @@
-
@@ -301,7 +303,7 @@
-
@@ -315,7 +317,7 @@
Glyph="" />
-
diff --git a/CompactGUI/Views/Pages/PendingCompression.xaml b/CompactGUI/Views/Pages/PendingCompression.xaml
index 307ac62..6122a9d 100644
--- a/CompactGUI/Views/Pages/PendingCompression.xaml
+++ b/CompactGUI/Views/Pages/PendingCompression.xaml
@@ -42,7 +42,7 @@
/>
@@ -148,12 +150,14 @@
FontSize="14" Foreground="#FF98A9B9">
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index bea26e8..6dfb903 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -28,7 +28,7 @@ Partial Public Class SettingsPage
New PropertyMetadata("Language (Requires Restart)"))
Private Sub SettingsPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
- ' 设置当前选择的语言
+ ' Set the currently selected language
Dim currentLanguage As String = LanguageHelper.GetCurrentLanguage()
For i As Integer = 0 To UiLanguageComboBox.Items.Count - 1
@@ -41,7 +41,7 @@ Partial Public Class SettingsPage
End Sub
Private Sub UpdateLocalizedText()
- ' 更新语言标签内容
+ ' Update language tag content
LanguageChangedLabelContent = LanguageHelper.GetString("SetUi_LanguageChanged")
End Sub
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 6989c6a..9df116b 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -91,6 +91,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 files will be skipped 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property CompressionConfiguration_SkipFile() As String
+ Get
+ Return ResourceManager.GetString("CompressionConfiguration_SkipFile", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Skip file types specified in settings 的本地化字符串。
'''
@@ -350,9 +359,20 @@ Namespace i18n
'''
''' 查找类似 Welcome 的本地化字符串。
'''
- Public Shared ReadOnly Property MessageWelcome() As String
+ Public Shared ReadOnly Property Message_Welcome() As String
Get
- Return ResourceManager.GetString("MessageWelcome", resourceCulture)
+ Return ResourceManager.GetString("Message_Welcome", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 You currently have {0} folders being watched. Closing CompactGUI will stop them from being monitored.
+ '''
+ '''Are you sure you want to exit? 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property MessageBox_ExitText() As String
+ Get
+ Return ResourceManager.GetString("MessageBox_ExitText", resourceCulture)
End Get
End Property
@@ -691,6 +711,177 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Applied to all folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_AppliedAllFolders() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_AppliedAllFolders", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression options have been applied to all folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_AppliedAllFoldersTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_AppliedAllFoldersTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Cannot remove folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_CannotRemoveFolder() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_CannotRemoveFolder", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Please wait until the current operation is finished 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_CannotRemoveFolderTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_CannotRemoveFolderTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 This game uses DirectStorage technology. If you are using this feature, you should not compress this game. 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_DirectStorageTechnology() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_DirectStorageTechnology", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Restart as Admin 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_RestartAdmin() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_RestartAdmin", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Insufficient permission to access this folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_RestartAdminTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_RestartAdminTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 The SnackbarPresenter was never set 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SnackbarPresenter() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SnackbarPresenter", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_Compression() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_Compression", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Game 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_Game() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_Game", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 SteamID 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_SteamID() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_SteamID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 UID 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_UID() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_UID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Failed to submit to wiki 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiFailed() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiFailed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Please check your internet connection and try again 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiFailedTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiFailedTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Submitted to wiki 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiTitle() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiTitle", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Success 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_Success() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_Success", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Added to Queue 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SuccessTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SuccessTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Update Available ▸ Version {0} 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_UpdateAvailable() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_UpdateAvailable", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Click to download 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_UpdateDownload() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_UpdateDownload", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 After 的本地化字符串。
'''
@@ -700,6 +891,24 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Analysing 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Analysing() As String
+ Get
+ Return ResourceManager.GetString("Status_Analysing", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Awaiting Compression 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_AwaitingCompression() As String
+ Get
+ Return ResourceManager.GetString("Status_AwaitingCompression", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Before 的本地化字符串。
'''
@@ -709,6 +918,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Compressed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Compressed() As String
+ Get
+ Return ResourceManager.GetString("Status_Compressed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Compression Mode 的本地化字符串。
'''
@@ -754,6 +972,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Not Compressed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_NotCompressed() As String
+ Get
+ Return ResourceManager.GetString("Status_NotCompressed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Results State 的本地化字符串。
'''
@@ -781,6 +1008,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Unknown 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Unknown() As String
+ Get
+ Return ResourceManager.GetString("Status_Unknown", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Working 的本地化字符串。
'''
@@ -871,6 +1107,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Add 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniAdd() As String
+ Get
+ Return ResourceManager.GetString("UniAdd", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Admin 的本地化字符串。
'''
@@ -880,6 +1125,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Cancel 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniCancel() As String
+ Get
+ Return ResourceManager.GetString("UniCancel", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 edit 的本地化字符串。
'''
@@ -889,6 +1143,24 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Exit 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniExit() As String
+ Get
+ Return ResourceManager.GetString("UniExit", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Open 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniOpen() As String
+ Get
+ Return ResourceManager.GetString("UniOpen", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Reset 的本地化字符串。
'''
@@ -907,6 +1179,33 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Yes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniYes() As String
+ Get
+ Return ResourceManager.GetString("UniYes", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add to compression queue 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_AddQueue() As String
+ Get
+ Return ResourceManager.GetString("Watcher_AddQueue", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add a custom folder to the watchlist 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_AddTip() As String
+ Get
+ Return ResourceManager.GetString("Watcher_AddTip", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Cancel Background Compressor 的本地化字符串。
'''
@@ -934,6 +1233,60 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 last compressed: 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_LastCompressed() As String
+ Get
+ Return ResourceManager.GetString("Watcher_LastCompressed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 last modified: 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_LastModified() As String
+ Get
+ Return ResourceManager.GetString("Watcher_LastModified", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Re-analyse all watched folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_ReAnalyse() As String
+ Get
+ Return ResourceManager.GetString("Watcher_ReAnalyse", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Re-analyse this folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_ReAnalyseFolder() As String
+ Get
+ Return ResourceManager.GetString("Watcher_ReAnalyseFolder", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Remove from Watchlist 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_RemoveWatchlist() As String
+ Get
+ Return ResourceManager.GetString("Watcher_RemoveWatchlist", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 decayed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_WatchedDecayed() As String
+ Get
+ Return ResourceManager.GetString("Watcher_WatchedDecayed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Watched Folders 的本地化字符串。
'''
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index bcb88de..2a41297 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -117,7 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
Welcome
@@ -423,4 +423,125 @@ skips files based on compression estimate
Last Fetched: {0:dd MMM yyyy HH:mm:ss}
+
+ Re-analyse all watched folders
+
+
+ last modified:
+
+
+ last compressed:
+
+
+ Remove from Watchlist
+
+
+ Add to compression queue
+
+
+ Re-analyse this folder
+
+
+ decayed
+
+
+ Add
+
+
+ Add a custom folder to the watchlist
+
+
+ Awaiting Compression
+
+
+ Analysing
+
+
+ Compressed
+
+
+ Unknown
+
+
+ files will be skipped
+
+
+ The SnackbarPresenter was never set
+
+
+ Restart as Admin
+
+
+ Insufficient permission to access this folder
+
+
+ Click to download
+
+
+ Update Available ▸ Version {0}
+
+
+ Failed to submit to wiki
+
+
+ Please check your internet connection and try again
+
+
+ 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.
+
+
+ Submitted to wiki
+
+
+ UID
+ @Invariant
+
+
+ Game
+
+
+ SteamID
+ @Invariant
+
+
+ Compression
+
+
+ Not Compressed
+
+
+ You currently have {0} folders being watched. Closing CompactGUI will stop them from being monitored.
+
+Are you sure you want to exit?
+
+
+ Open
+
+
+ Exit
+
+
+ Yes
+
+
+ Cancel
+
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index d7ac907..9820d33 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -378,7 +378,7 @@
下次计划: {0:yyyy年 M月 d日 HH:mm:ss}
-
+
欢迎
@@ -405,4 +405,117 @@
最后获取: {0:yyyy年 M月 d日 HH:mm:ss}
+
+ 上次修改:
+
+
+ 上次压缩:
+
+
+ 重新分析所有受监控文件夹
+
+
+ 从监控列表移除
+
+
+ 添加到压缩队列
+
+
+ 重新分析此文件夹
+
+
+ 已衰减
+
+
+ 添加自定义文件夹到监控列表
+
+
+ 添加
+
+
+ 正在分析
+
+
+ 等待压缩
+
+
+ 已压缩
+
+
+ 未知
+
+
+ 个文件将被跳过
+
+
+ SnackbarPresenter 从未被设置
+
+
+ 以管理员身份重新启动
+
+
+ 没有足够的权限访问此文件夹
+
+
+ 点击下载
+
+
+ 更新可用 ▸ 版本 {0}
+
+
+ 提交到 Wiki 失败
+
+
+ 此游戏使用 DirectStorage 技术。如果您正在使用此功能,则不应压缩此游戏。
+
+
+ 请等待当前操作完成
+
+
+ 无法移除文件夹
+
+
+ 压缩选项已应用到所有文件夹
+
+
+ 已应用到所有文件夹
+
+
+ 请检查您的网络连接并重试
+
+
+ 成功
+
+
+ 已添加到队列
+
+
+ 已提交到 Wiki
+
+
+ 压缩模式
+
+
+ 游戏
+
+
+ 未压缩
+
+
+ 你目前有 {0} 个文件夹正在被监控。关闭 CompactGUI 将停止对它们的监控。
+
+你确定要退出吗?
+
+
+ 退出
+
+
+ 打开
+
+
+ 是
+
+
+ 否
+
\ No newline at end of file
From cff4d194e80d660fd7a3add5de29c4452c7e6b74 Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Thu, 1 Jan 2026 19:07:29 +0800
Subject: [PATCH 8/9] i18n Complete
---
CompactGUI/Application.xaml.vb | 2 +-
.../Components/Converters/IValueConverters.vb | 12 +-
CompactGUI/LanguageHelper.vb | 27 +-
CompactGUI/MainWindow.xaml | 4 +-
CompactGUI/Services/CustomSnackBarService.vb | 35 +-
CompactGUI/Services/WindowService.vb | 4 +-
CompactGUI/ViewModels/FolderViewModel.vb | 6 +-
CompactGUI/ViewModels/MainWindowViewModel.vb | 3 +-
.../Components/CompressionMode_Radio.xaml | 2 +-
.../Views/Components/FolderWatcherCard.xaml | 24 +-
.../Views/Pages/PendingCompression.xaml | 32 +-
CompactGUI/Views/SettingsPage.xaml.vb | 4 +-
CompactGUI/i18n/i18n.Designer.vb | 357 +++++++++++++++++-
CompactGUI/i18n/i18n.resx | 123 +++++-
CompactGUI/i18n/i18n.zh-CN.resx | 115 +++++-
15 files changed, 671 insertions(+), 79 deletions(-)
diff --git a/CompactGUI/Application.xaml.vb b/CompactGUI/Application.xaml.vb
index e5c360c..07ca15f 100644
--- a/CompactGUI/Application.xaml.vb
+++ b/CompactGUI/Application.xaml.vb
@@ -32,7 +32,7 @@ Partial Public Class Application
End Sub
Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
- ' 启动时调用语言配置
+ ' Call the language configuration at startup
LanguageHelper.Initialize()
End Sub
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index 9b59a73..39fb608 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -102,7 +102,7 @@ Public Class RelativeDateConverter : Implements IValueConverter
ElseIf ts > TimeSpan.FromMinutes(2) Then
Return String.Format(LanguageHelper.GetString("Time_MinutesAgo"), ts.TotalMinutes)
Else
- Return LanguageHelper.GetString("Time_Now")
+ Return LanguageHelper.GetString("RelativeTimeJustNow")
End If
End Function
@@ -291,15 +291,15 @@ Public Class FolderStatusToStringConverter : Implements IValueConverter
Dim status = CType(value, ActionState)
Select Case status
Case ActionState.Idle
- Return "Awaiting Compression"
+ Return LanguageHelper.GetString("Status_AwaitingCompression")
Case ActionState.Analysing
- Return "Analysing"
+ Return LanguageHelper.GetString("Status_Analysing")
Case ActionState.Working, ActionState.Paused
- Return "Working"
+ Return LanguageHelper.GetString("Status_Working")
Case ActionState.Results
- Return "Compressed"
+ Return LanguageHelper.GetString("Status_Compressed")
Case Else
- Return "Unknown"
+ Return LanguageHelper.GetString("Status_Unknown")
End Select
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
diff --git a/CompactGUI/LanguageHelper.vb b/CompactGUI/LanguageHelper.vb
index 8dcb0f2..f373aba 100644
--- a/CompactGUI/LanguageHelper.vb
+++ b/CompactGUI/LanguageHelper.vb
@@ -6,7 +6,7 @@ Imports System.Windows.Data
Imports System.Reflection
Public Class LanguageHelper
- ' 支持的语言列表
+ ' Supported language list
' @i18n
Private Shared ReadOnly SupportedCultures As String() = {"en-US", "zh-CN"}
Private Shared resourceManager As ResourceManager = i18n.i18n.ResourceManager
@@ -49,7 +49,7 @@ Public Class LanguageHelper
Return rawValue
End If
Catch ex As Exception
- Debug.WriteLine($"获取多语言文本失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Failed to get multilingual text:{key},Error:{ex.Message}")
Return key
End Try
End Function
@@ -62,7 +62,7 @@ Public Class LanguageHelper
currentCulture = culture
Catch ex As Exception
- Debug.WriteLine($"应用语言失败:{cultureName},错误:{ex.Message}")
+ Debug.WriteLine($"Application language failure:{cultureName},Error:{ex.Message}")
SetDefaultLanguage()
End Try
End Sub
@@ -79,31 +79,16 @@ Public Class LanguageHelper
End Function
Private Shared Sub SetDefaultLanguage()
- ' 根据系统语言设置默认语言
+ ' Set the default language according to the system language.
'@i18n
Dim langMapping As New Dictionary(Of String, String) From {
{"en", "en-US"},
{"zh", "zh-CN"}
}
- '{"ja", "ja-JP"},
- '{"ko", "ko-KR"},
- '{"fr", "fr-FR"},
- '{"de", "de-DE"},
- '{"es", "es-ES"},
- '{"ru", "ru-RU"}
Dim systemLang As String = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToLower()
Dim defaultLang As String = If(langMapping.ContainsKey(systemLang), langMapping(systemLang), "en-US")
- ' 特殊处理中文简/繁
- 'If systemLang = "zh" Then
- ' If Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-TW") Then
- ' defaultLang = "zh-TW"
- ' ElseIf Thread.CurrentThread.CurrentUICulture.Name.StartsWith("zh-HK") Then
- ' defaultLang = "zh-HK"
- ' End If
- 'End If
-
ApplyCulture(defaultLang)
WriteAppConfig("language", defaultLang)
End Sub
@@ -117,7 +102,7 @@ Public Class LanguageHelper
Dim config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None)
Return If(config.AppSettings.Settings(key)?.Value, String.Empty)
Catch ex As Exception
- Debug.WriteLine($"读取配置失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Read configuration failed:{key},Error:{ex.Message}")
Return String.Empty
End Try
End Function
@@ -133,7 +118,7 @@ Public Class LanguageHelper
config.Save(System.Configuration.ConfigurationSaveMode.Modified)
System.Configuration.ConfigurationManager.RefreshSection("appSettings")
Catch ex As Exception
- Debug.WriteLine($"写入配置失败:{key},错误:{ex.Message}")
+ Debug.WriteLine($"Write configuration failed:{key},Error:{ex.Message}")
End Try
End Sub
End Class
diff --git a/CompactGUI/MainWindow.xaml b/CompactGUI/MainWindow.xaml
index a3ae737..1487863 100644
--- a/CompactGUI/MainWindow.xaml
+++ b/CompactGUI/MainWindow.xaml
@@ -259,8 +259,8 @@
FocusOnLeftClick="True" MenuOnRightClick="True" TooltipText="CompactGUI">
-
-
+
+
diff --git a/CompactGUI/Services/CustomSnackBarService.vb b/CompactGUI/Services/CustomSnackBarService.vb
index f448b15..66d663a 100644
--- a/CompactGUI/Services/CustomSnackBarService.vb
+++ b/CompactGUI/Services/CustomSnackBarService.vb
@@ -20,7 +20,7 @@ Public Class CustomSnackBarService
Public Sub ShowCustom(message As UIElement, title As String, appearance As ControlAppearance, Optional icon As IconElement = Nothing, Optional timeout As TimeSpan = Nothing)
- If GetSnackbarPresenter() Is Nothing Then Throw New InvalidOperationException("The SnackbarPresenter was never set")
+ If GetSnackbarPresenter() Is Nothing Then Throw New InvalidOperationException(LanguageHelper.GetString("SnackBar_SnackbarPresenter")) 'The SnackbarPresenter was never set
If _snackbar Is Nothing Then _snackbar = New Snackbar(GetSnackbarPresenter())
_snackbar.SetCurrentValue(Snackbar.TitleProperty, title)
@@ -52,20 +52,21 @@ Public Class CustomSnackBarService
Public Sub ShowInsufficientPermission(folderName As String)
Dim button = New Button With {
- .Content = "Restart as Admin",
+ .Content = LanguageHelper.GetString("SnackBar_RestartAdmin"), '"Restart as Admin"
.Command = New RelayCommand(Sub() RunAsAdmin(folderName)),
.Margin = New Thickness(-3, 10, 0, 0)
}
- ShowCustom(button, "Insufficient permission to access this folder.", ControlAppearance.Danger, timeout:=TimeSpan.FromSeconds(60))
+ ShowCustom(button, LanguageHelper.GetString("SnackBar_RestartAdminTip"), ControlAppearance.Danger, timeout:=TimeSpan.FromSeconds(60)) '"Insufficient permission to access this folder."
End Sub
Public Sub ShowUpdateAvailable(newVersion As String, isPreRelease As Boolean)
Dim textBlock = New TextBlock
- textBlock.Text = "Click to download"
+ textBlock.Text = LanguageHelper.GetString("SnackBar_UpdateDownload") '"Click to download"
' Show the custom snackbar
SnackbarServiceLog.ShowUpdateAvailable(logger, newVersion, isPreRelease)
- ShowCustom(textBlock, $"Update Available ▸ Version {newVersion}", If(isPreRelease, ControlAppearance.Info, ControlAppearance.Success), timeout:=TimeSpan.FromSeconds(10))
+ Dim title As String = String.Format(LanguageHelper.GetString("SnackBar_UpdateAvailable"), newVersion) 'Update Available ▸ Version {newVersion}
+ ShowCustom(textBlock, title, If(isPreRelease, ControlAppearance.Info, ControlAppearance.Success), timeout:=TimeSpan.FromSeconds(10))
Dim handler As MouseButtonEventHandler = Nothing
Dim closedHandler As TypedEventHandler(Of Snackbar, RoutedEventArgs) = Nothing
@@ -86,37 +87,49 @@ Public Class CustomSnackBarService
End Sub
Public Sub ShowFailedToSubmitToWiki()
- Show("Failed to submit to wiki", "Please check your internet connection and try again", Wpf.Ui.Controls.ControlAppearance.Danger, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_SubmitWikiFailed"), LanguageHelper.GetString("SnackBar_SubmitWikiFailedTip"), Wpf.Ui.Controls.ControlAppearance.Danger, Nothing, TimeSpan.FromSeconds(5))
+ '"Failed to submit to wiki", "Please check your internet connection and try again"
SnackbarServiceLog.ShowFailedToSubmitToWiki(logger)
End Sub
Public Sub ShowSubmittedToWiki(steamsubmitdata As SteamSubmissionData, compressionMode As Integer)
- Show("Submitted to wiki", $"UID: {steamsubmitdata.UID}{vbCrLf}Game: {steamsubmitdata.GameName}{vbCrLf}SteamID: {steamsubmitdata.SteamID}{vbCrLf}Compression: {[Enum].GetName(GetType(Core.WOFCompressionAlgorithm), Core.WOFHelper.WOFConvertCompressionLevel(compressionMode))}", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(10))
+ Dim compressionName As String = [Enum].GetName(GetType(Core.WOFCompressionAlgorithm), Core.WOFHelper.WOFConvertCompressionLevel(compressionMode))
+ Dim message As String = $"{LanguageHelper.GetString("SnackBar_SubmitWiki_UID")}: {steamsubmitdata.UID}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_Game")}: {steamsubmitdata.GameName}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_SteamID")}: {steamsubmitdata.SteamID}{vbCrLf}" &
+ $"{LanguageHelper.GetString("SnackBar_SubmitWiki_Compression")}: {compressionName}"
+ 'Show("Submitted to wiki", $"UID: {0}{1}Game: {2}{1}SteamID: {3}{1}Compression: {4}
+
+ Show(LanguageHelper.GetString("SnackBar_SubmitWikiTitle"), message, Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(10))
SnackbarServiceLog.ShowSubmittedToWiki(logger, steamsubmitdata.UID, steamsubmitdata.GameName, steamsubmitdata.SteamID, steamsubmitdata.CompressionMode)
End Sub
Public Sub ShowAppliedToAllFolders()
- Show("Applied to all folders", "Compression options have been applied to all folders", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_AppliedAllFolders"), LanguageHelper.GetString("SnackBar_AppliedAllFoldersTip"), Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ '"Applied to all folders", "Compression options have been applied to all folders"
SnackbarServiceLog.ShowAppliedToAllFolders(logger)
End Sub
Public Sub ShowCannotRemoveFolder()
- Show("Cannot remove folder", "Please wait until the current operation is finished", Wpf.Ui.Controls.ControlAppearance.Caution, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_CannotRemoveFolder"), LanguageHelper.GetString("SnackBar_CannotRemoveFolderTip"), Wpf.Ui.Controls.ControlAppearance.Caution, Nothing, TimeSpan.FromSeconds(5))
+ '"Cannot remove folder", "Please wait until the current operation is finished"
SnackbarServiceLog.ShowCannotRemoveFolder(logger)
End Sub
Public Sub ShowAddedToQueue()
- Show("Success", "Added to Queue", Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ Show(LanguageHelper.GetString("SnackBar_Success"), LanguageHelper.GetString("SnackBar_SuccessTip"), Wpf.Ui.Controls.ControlAppearance.Success, Nothing, TimeSpan.FromSeconds(5))
+ '"Success", "Added to Queue"
SnackbarServiceLog.ShowAddedToQueue(logger)
End Sub
Public Sub ShowDirectStorageWarning(displayName As String)
Show(displayName,
- "This game uses DirectStorage technology. If you are using this feature, you should not compress this game.",
+ LanguageHelper.GetString("SnackBar_DirectStorageTechnology"),
Wpf.Ui.Controls.ControlAppearance.Info,
Nothing,
TimeSpan.FromSeconds(20))
+ '"This game uses DirectStorage technology. If you are using this feature, you should not compress this game.",
SnackbarServiceLog.ShowDirectStorageWarning(logger, displayName)
End Sub
End Class
\ No newline at end of file
diff --git a/CompactGUI/Services/WindowService.vb b/CompactGUI/Services/WindowService.vb
index fab6e09..764aefe 100644
--- a/CompactGUI/Services/WindowService.vb
+++ b/CompactGUI/Services/WindowService.vb
@@ -33,8 +33,8 @@ Public Class WindowService
.Title = title,
.Content = content,
.IsPrimaryButtonEnabled = True,
- .PrimaryButtonText = "Yes",
- .CloseButtonText = "Cancel"
+ .PrimaryButtonText = LanguageHelper.GetString("UniYes"),
+ .CloseButtonText = LanguageHelper.GetString("UniCancel")
}
Dim result = Await msgBox.ShowDialogAsync()
Return result = Wpf.Ui.Controls.MessageBoxResult.Primary
diff --git a/CompactGUI/ViewModels/FolderViewModel.vb b/CompactGUI/ViewModels/FolderViewModel.vb
index 76bb4c3..a8d96cf 100644
--- a/CompactGUI/ViewModels/FolderViewModel.vb
+++ b/CompactGUI/ViewModels/FolderViewModel.vb
@@ -58,10 +58,10 @@ Public NotInheritable Class FolderViewModel : Inherits ObservableObject : Implem
Public ReadOnly Property CompressionDisplayLevel As String
Get
If Folder.AnalysisResults Is Nothing OrElse
- Not Folder.AnalysisResults.Any(Function(x) x.CompressionMode <> Core.WOFCompressionAlgorithm.NO_COMPRESSION) Then
- Return "Not Compressed"
+ Not Folder.AnalysisResults.Any(Function(x) x.CompressionMode <> Core.WOFCompressionAlgorithm.NO_COMPRESSION) Then
+ Return LanguageHelper.GetString("Status_NotCompressed") 'Not Compressed
End If
- Return "Compressed"
+ Return LanguageHelper.GetString("Status_Compressed") 'Compressed
End Get
End Property
diff --git a/CompactGUI/ViewModels/MainWindowViewModel.vb b/CompactGUI/ViewModels/MainWindowViewModel.vb
index 7cc23ad..ffcd00c 100644
--- a/CompactGUI/ViewModels/MainWindowViewModel.vb
+++ b/CompactGUI/ViewModels/MainWindowViewModel.vb
@@ -39,7 +39,8 @@ Partial Public Class MainWindowViewModel : Inherits ObservableRecipient : Implem
Private Async Function NotifyIconExit() As Task
If _watcher.WatchedFolders.Count = 0 Then Application.Current.Shutdown()
- Dim confirmed = Await _windowService.ShowMessageBox("CompactGUI", $"You currently have {_watcher.WatchedFolders.Count} folders being watched. Closing CompactGUI will stop them from being monitored.{Environment.NewLine}{Environment.NewLine}Are you sure you want to exit?")
+ Dim message As String = String.Format(LanguageHelper.GetString("MessageBox_ExitText"), _watcher.WatchedFolders.Count)
+ Dim confirmed = Await _windowService.ShowMessageBox(LanguageHelper.GetString("Title_CompactGUI"), message)
If Not confirmed Then Return
_watcher.WriteToFile()
Application.Current.Shutdown()
diff --git a/CompactGUI/Views/Components/CompressionMode_Radio.xaml b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
index 51a8c68..85dfc35 100644
--- a/CompactGUI/Views/Components/CompressionMode_Radio.xaml
+++ b/CompactGUI/Views/Components/CompressionMode_Radio.xaml
@@ -33,7 +33,7 @@
+ FontSize="14" FontWeight="SemiBold">
diff --git a/CompactGUI/Views/Components/FolderWatcherCard.xaml b/CompactGUI/Views/Components/FolderWatcherCard.xaml
index 012b13c..1efd4ed 100644
--- a/CompactGUI/Views/Components/FolderWatcherCard.xaml
+++ b/CompactGUI/Views/Components/FolderWatcherCard.xaml
@@ -51,11 +51,11 @@
Command="{Binding ManuallyAddFolderToWatcherCommand}">
-
+
-
@@ -97,7 +97,7 @@
-
@@ -236,11 +236,11 @@
-
-
@@ -278,7 +280,7 @@
-
@@ -301,7 +303,7 @@
-
@@ -315,7 +317,7 @@
Glyph="" />
-
diff --git a/CompactGUI/Views/Pages/PendingCompression.xaml b/CompactGUI/Views/Pages/PendingCompression.xaml
index 307ac62..6122a9d 100644
--- a/CompactGUI/Views/Pages/PendingCompression.xaml
+++ b/CompactGUI/Views/Pages/PendingCompression.xaml
@@ -42,7 +42,7 @@
/>
@@ -148,12 +150,14 @@
FontSize="14" Foreground="#FF98A9B9">
diff --git a/CompactGUI/Views/SettingsPage.xaml.vb b/CompactGUI/Views/SettingsPage.xaml.vb
index bea26e8..6dfb903 100644
--- a/CompactGUI/Views/SettingsPage.xaml.vb
+++ b/CompactGUI/Views/SettingsPage.xaml.vb
@@ -28,7 +28,7 @@ Partial Public Class SettingsPage
New PropertyMetadata("Language (Requires Restart)"))
Private Sub SettingsPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
- ' 设置当前选择的语言
+ ' Set the currently selected language
Dim currentLanguage As String = LanguageHelper.GetCurrentLanguage()
For i As Integer = 0 To UiLanguageComboBox.Items.Count - 1
@@ -41,7 +41,7 @@ Partial Public Class SettingsPage
End Sub
Private Sub UpdateLocalizedText()
- ' 更新语言标签内容
+ ' Update language tag content
LanguageChangedLabelContent = LanguageHelper.GetString("SetUi_LanguageChanged")
End Sub
diff --git a/CompactGUI/i18n/i18n.Designer.vb b/CompactGUI/i18n/i18n.Designer.vb
index 6989c6a..9df116b 100644
--- a/CompactGUI/i18n/i18n.Designer.vb
+++ b/CompactGUI/i18n/i18n.Designer.vb
@@ -91,6 +91,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 files will be skipped 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property CompressionConfiguration_SkipFile() As String
+ Get
+ Return ResourceManager.GetString("CompressionConfiguration_SkipFile", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Skip file types specified in settings 的本地化字符串。
'''
@@ -350,9 +359,20 @@ Namespace i18n
'''
''' 查找类似 Welcome 的本地化字符串。
'''
- Public Shared ReadOnly Property MessageWelcome() As String
+ Public Shared ReadOnly Property Message_Welcome() As String
Get
- Return ResourceManager.GetString("MessageWelcome", resourceCulture)
+ Return ResourceManager.GetString("Message_Welcome", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 You currently have {0} folders being watched. Closing CompactGUI will stop them from being monitored.
+ '''
+ '''Are you sure you want to exit? 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property MessageBox_ExitText() As String
+ Get
+ Return ResourceManager.GetString("MessageBox_ExitText", resourceCulture)
End Get
End Property
@@ -691,6 +711,177 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Applied to all folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_AppliedAllFolders() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_AppliedAllFolders", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression options have been applied to all folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_AppliedAllFoldersTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_AppliedAllFoldersTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Cannot remove folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_CannotRemoveFolder() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_CannotRemoveFolder", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Please wait until the current operation is finished 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_CannotRemoveFolderTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_CannotRemoveFolderTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 This game uses DirectStorage technology. If you are using this feature, you should not compress this game. 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_DirectStorageTechnology() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_DirectStorageTechnology", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Restart as Admin 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_RestartAdmin() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_RestartAdmin", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Insufficient permission to access this folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_RestartAdminTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_RestartAdminTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 The SnackbarPresenter was never set 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SnackbarPresenter() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SnackbarPresenter", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Compression 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_Compression() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_Compression", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Game 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_Game() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_Game", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 SteamID 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_SteamID() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_SteamID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 UID 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWiki_UID() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWiki_UID", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Failed to submit to wiki 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiFailed() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiFailed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Please check your internet connection and try again 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiFailedTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiFailedTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Submitted to wiki 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SubmitWikiTitle() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SubmitWikiTitle", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Success 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_Success() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_Success", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Added to Queue 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_SuccessTip() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_SuccessTip", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Update Available ▸ Version {0} 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_UpdateAvailable() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_UpdateAvailable", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Click to download 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property SnackBar_UpdateDownload() As String
+ Get
+ Return ResourceManager.GetString("SnackBar_UpdateDownload", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 After 的本地化字符串。
'''
@@ -700,6 +891,24 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Analysing 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Analysing() As String
+ Get
+ Return ResourceManager.GetString("Status_Analysing", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Awaiting Compression 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_AwaitingCompression() As String
+ Get
+ Return ResourceManager.GetString("Status_AwaitingCompression", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Before 的本地化字符串。
'''
@@ -709,6 +918,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Compressed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Compressed() As String
+ Get
+ Return ResourceManager.GetString("Status_Compressed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Compression Mode 的本地化字符串。
'''
@@ -754,6 +972,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Not Compressed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_NotCompressed() As String
+ Get
+ Return ResourceManager.GetString("Status_NotCompressed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Results State 的本地化字符串。
'''
@@ -781,6 +1008,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Unknown 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Status_Unknown() As String
+ Get
+ Return ResourceManager.GetString("Status_Unknown", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Working 的本地化字符串。
'''
@@ -871,6 +1107,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Add 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniAdd() As String
+ Get
+ Return ResourceManager.GetString("UniAdd", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Admin 的本地化字符串。
'''
@@ -880,6 +1125,15 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Cancel 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniCancel() As String
+ Get
+ Return ResourceManager.GetString("UniCancel", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 edit 的本地化字符串。
'''
@@ -889,6 +1143,24 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Exit 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniExit() As String
+ Get
+ Return ResourceManager.GetString("UniExit", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Open 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniOpen() As String
+ Get
+ Return ResourceManager.GetString("UniOpen", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Reset 的本地化字符串。
'''
@@ -907,6 +1179,33 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 Yes 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property UniYes() As String
+ Get
+ Return ResourceManager.GetString("UniYes", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add to compression queue 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_AddQueue() As String
+ Get
+ Return ResourceManager.GetString("Watcher_AddQueue", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Add a custom folder to the watchlist 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_AddTip() As String
+ Get
+ Return ResourceManager.GetString("Watcher_AddTip", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Cancel Background Compressor 的本地化字符串。
'''
@@ -934,6 +1233,60 @@ Namespace i18n
End Get
End Property
+ '''
+ ''' 查找类似 last compressed: 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_LastCompressed() As String
+ Get
+ Return ResourceManager.GetString("Watcher_LastCompressed", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 last modified: 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_LastModified() As String
+ Get
+ Return ResourceManager.GetString("Watcher_LastModified", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Re-analyse all watched folders 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_ReAnalyse() As String
+ Get
+ Return ResourceManager.GetString("Watcher_ReAnalyse", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Re-analyse this folder 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_ReAnalyseFolder() As String
+ Get
+ Return ResourceManager.GetString("Watcher_ReAnalyseFolder", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 Remove from Watchlist 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_RemoveWatchlist() As String
+ Get
+ Return ResourceManager.GetString("Watcher_RemoveWatchlist", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' 查找类似 decayed 的本地化字符串。
+ '''
+ Public Shared ReadOnly Property Watcher_WatchedDecayed() As String
+ Get
+ Return ResourceManager.GetString("Watcher_WatchedDecayed", resourceCulture)
+ End Get
+ End Property
+
'''
''' 查找类似 Watched Folders 的本地化字符串。
'''
diff --git a/CompactGUI/i18n/i18n.resx b/CompactGUI/i18n/i18n.resx
index bcb88de..2a41297 100644
--- a/CompactGUI/i18n/i18n.resx
+++ b/CompactGUI/i18n/i18n.resx
@@ -117,7 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
Welcome
@@ -423,4 +423,125 @@ skips files based on compression estimate
Last Fetched: {0:dd MMM yyyy HH:mm:ss}
+
+ Re-analyse all watched folders
+
+
+ last modified:
+
+
+ last compressed:
+
+
+ Remove from Watchlist
+
+
+ Add to compression queue
+
+
+ Re-analyse this folder
+
+
+ decayed
+
+
+ Add
+
+
+ Add a custom folder to the watchlist
+
+
+ Awaiting Compression
+
+
+ Analysing
+
+
+ Compressed
+
+
+ Unknown
+
+
+ files will be skipped
+
+
+ The SnackbarPresenter was never set
+
+
+ Restart as Admin
+
+
+ Insufficient permission to access this folder
+
+
+ Click to download
+
+
+ Update Available ▸ Version {0}
+
+
+ Failed to submit to wiki
+
+
+ Please check your internet connection and try again
+
+
+ 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.
+
+
+ Submitted to wiki
+
+
+ UID
+ @Invariant
+
+
+ Game
+
+
+ SteamID
+ @Invariant
+
+
+ Compression
+
+
+ Not Compressed
+
+
+ You currently have {0} folders being watched. Closing CompactGUI will stop them from being monitored.
+
+Are you sure you want to exit?
+
+
+ Open
+
+
+ Exit
+
+
+ Yes
+
+
+ Cancel
+
\ No newline at end of file
diff --git a/CompactGUI/i18n/i18n.zh-CN.resx b/CompactGUI/i18n/i18n.zh-CN.resx
index d7ac907..9820d33 100644
--- a/CompactGUI/i18n/i18n.zh-CN.resx
+++ b/CompactGUI/i18n/i18n.zh-CN.resx
@@ -378,7 +378,7 @@
下次计划: {0:yyyy年 M月 d日 HH:mm:ss}
-
+
欢迎
@@ -405,4 +405,117 @@
最后获取: {0:yyyy年 M月 d日 HH:mm:ss}
+
+ 上次修改:
+
+
+ 上次压缩:
+
+
+ 重新分析所有受监控文件夹
+
+
+ 从监控列表移除
+
+
+ 添加到压缩队列
+
+
+ 重新分析此文件夹
+
+
+ 已衰减
+
+
+ 添加自定义文件夹到监控列表
+
+
+ 添加
+
+
+ 正在分析
+
+
+ 等待压缩
+
+
+ 已压缩
+
+
+ 未知
+
+
+ 个文件将被跳过
+
+
+ SnackbarPresenter 从未被设置
+
+
+ 以管理员身份重新启动
+
+
+ 没有足够的权限访问此文件夹
+
+
+ 点击下载
+
+
+ 更新可用 ▸ 版本 {0}
+
+
+ 提交到 Wiki 失败
+
+
+ 此游戏使用 DirectStorage 技术。如果您正在使用此功能,则不应压缩此游戏。
+
+
+ 请等待当前操作完成
+
+
+ 无法移除文件夹
+
+
+ 压缩选项已应用到所有文件夹
+
+
+ 已应用到所有文件夹
+
+
+ 请检查您的网络连接并重试
+
+
+ 成功
+
+
+ 已添加到队列
+
+
+ 已提交到 Wiki
+
+
+ 压缩模式
+
+
+ 游戏
+
+
+ 未压缩
+
+
+ 你目前有 {0} 个文件夹正在被监控。关闭 CompactGUI 将停止对它们的监控。
+
+你确定要退出吗?
+
+
+ 退出
+
+
+ 打开
+
+
+ 是
+
+
+ 否
+
\ No newline at end of file
From 0717dd80615631e4caf96fd3e9d55def3b0253db Mon Sep 17 00:00:00 2001
From: XTsat <44708609+XTsat@users.noreply.github.com>
Date: Thu, 1 Jan 2026 21:45:09 +0800
Subject: [PATCH 9/9] bug fix
---
CompactGUI/Components/Converters/IValueConverters.vb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CompactGUI/Components/Converters/IValueConverters.vb b/CompactGUI/Components/Converters/IValueConverters.vb
index 39fb608..ea7683a 100644
--- a/CompactGUI/Components/Converters/IValueConverters.vb
+++ b/CompactGUI/Components/Converters/IValueConverters.vb
@@ -102,7 +102,7 @@ Public Class RelativeDateConverter : Implements IValueConverter
ElseIf ts > TimeSpan.FromMinutes(2) Then
Return String.Format(LanguageHelper.GetString("Time_MinutesAgo"), ts.TotalMinutes)
Else
- Return LanguageHelper.GetString("RelativeTimeJustNow")
+ Return LanguageHelper.GetString("Time_Now")
End If
End Function