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/Application.xaml.vb b/CompactGUI/Application.xaml.vb index 9c46d71..0b76db0 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 @@ -17,7 +17,13 @@ Imports Coravel.Scheduling.Schedule Partial Public Class Application - Public Shared ReadOnly AppVersion As New SemVersion(4, 0, 0, "beta", 6) + Public Shared ReadOnly AppVersion As New SemVersion(4, 0, 0, "beta", 9) + + Public Shared ReadOnly Property AppVersionText As String + Get + Return AppVersion.ToString() + End Get + End Property Private Shared _host As IHost @@ -31,7 +37,11 @@ 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 Private Shared Sub InitializeHost() _host = Host.CreateDefaultBuilder() _ diff --git a/CompactGUI/CompactGUI.vbproj b/CompactGUI/CompactGUI.vbproj index babeb9f..f277e7f 100644 --- a/CompactGUI/CompactGUI.vbproj +++ b/CompactGUI/CompactGUI.vbproj @@ -15,7 +15,13 @@ Copyright © 2025 https://github.com/IridiumIO/CompactGUI/ icon.ico - + + false + + true + true + win-x64 + true @@ -29,7 +35,6 @@ none - @@ -46,6 +51,7 @@ + @@ -71,6 +77,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..01acbaf 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 @@ -16,7 +16,16 @@ End Class Public Class BytesToReadableConverter : Implements IValueConverter Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert - Dim suf As String() = {" B", " KB", " MB", " GB", " TB", " PB", " EB"} + + Dim suf As String() = { + LanguageHelper.GetString("SizeUnit_B"), + LanguageHelper.GetString("SizeUnit_KB"), + LanguageHelper.GetString("SizeUnit_MB"), + LanguageHelper.GetString("SizeUnit_GB"), + LanguageHelper.GetString("SizeUnit_TB"), + LanguageHelper.GetString("SizeUnit_PB"), + LanguageHelper.GetString("SizeUnit_EB") + } If value = 1010101010101010 Then Return "?" @@ -88,20 +97,21 @@ 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 + 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("Time_Unknown") End If If ts > TimeSpan.FromDays(2) Then - Return String.Format("{0:0} days ago", ts.TotalDays) + Return String.Format(LanguageHelper.GetString("Time_DaysAgo"), ts.TotalDays) ElseIf ts > TimeSpan.FromHours(2) Then - Return String.Format("{0:0} hours ago", ts.TotalHours) + Return String.Format(LanguageHelper.GetString("Time_HoursAgo"), ts.TotalHours) ElseIf ts > TimeSpan.FromMinutes(2) Then - Return String.Format("{0:0} minutes ago", ts.TotalMinutes) + Return String.Format(LanguageHelper.GetString("Time_MinutesAgo"), ts.TotalMinutes) Else - Return "just now" + Return LanguageHelper.GetString("Time_Now") End If End Function @@ -290,15 +300,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/Components/Settings/Settings_skiplistflyout.xaml b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml index 4049144..cca0717 100644 --- a/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml +++ b/CompactGUI/Components/Settings/Settings_skiplistflyout.xaml @@ -1,4 +1,4 @@ - - @@ -110,7 +111,11 @@