diff --git a/McMetroLauncher-Manager/MainWindow.xaml.vb b/McMetroLauncher-Manager/MainWindow.xaml.vb
index 4ee8307..301f1f6 100644
--- a/McMetroLauncher-Manager/MainWindow.xaml.vb
+++ b/McMetroLauncher-Manager/MainWindow.xaml.vb
@@ -4,13 +4,14 @@ Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Module GlobalInfos
- Public Webspace As String = "http://patzleiner.net"
+ Public Website As String = "http://patzleiner.net/"
Public Versionsurl As String = "http://s3.amazonaws.com/Minecraft.Download/versions/versions.json"
Public mcpfad As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft"
Public modsfile As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\modlist.json"
Public outputjsonversions As String = mcpfad & "\cache\versions.json"
Public modsfolder As String = mcpfad & "\mods"
Public cachefolder As String = mcpfad & "\cache"
+ Public modfileurl As String = Website & "download/modlist.json"
Public downloadfilepath As String
Public Versions As Versionslist
Public Moditem As Modifications.Mod
@@ -55,7 +56,7 @@ Public Class Manager
Await wc.DownloadFileTaskAsync(New Uri(Versionsurl), outputjsonversions)
If IO.File.Exists(modsfile) = False Then
wc = New WebClient()
- Await wc.DownloadFileTaskAsync(New Uri(Webspace & "\minecraft\launcher\modlist.json"), modsfile)
+ Await wc.DownloadFileTaskAsync(New Uri(modfileurl), modsfile)
End If
Await Start()
End Sub
diff --git a/McMetroLauncher-Manager/McMetroLauncher-Manager.vbproj b/McMetroLauncher-Manager/McMetroLauncher-Manager.vbproj
index cc2f3f6..5efa28f 100644
--- a/McMetroLauncher-Manager/McMetroLauncher-Manager.vbproj
+++ b/McMetroLauncher-Manager/McMetroLauncher-Manager.vbproj
@@ -47,12 +47,17 @@
On
+
+ false
+
-
- ..\..\MahApps.Metro\MahApps.Metro\bin\Debug\NET45\MahApps.Metro.dll
+
+ ..\libraries\MahApps.Metro.dll
+ False
-
- ..\..\..\libraries\Newtonsoft.Json.dll
+
+ False
+ ..\libraries\Newtonsoft.Json.dll
diff --git a/MinecraftLauncher/Application.xaml b/MinecraftLauncher/Application.xaml
index 45040c0..d3c4d5e 100644
--- a/MinecraftLauncher/Application.xaml
+++ b/MinecraftLauncher/Application.xaml
@@ -22,7 +22,7 @@
diff --git a/MinecraftLauncher/Extensions/Converters/Converters.vb b/MinecraftLauncher/Extensions/Converters/Converters.vb
index 9a874f8..bff0b0a 100644
--- a/MinecraftLauncher/Extensions/Converters/Converters.vb
+++ b/MinecraftLauncher/Extensions/Converters/Converters.vb
@@ -106,7 +106,7 @@ Public Class Playerlist_Namesstring_Converter
Dim s As IList(Of ServerStatus.PlayerList.Player) = TryCast(value, IList(Of ServerStatus.PlayerList.Player))
If s Is Nothing Then Return Nothing
Dim playernames As IList(Of String) = s.Select(Function(p) p.Name).ToList
- Dim returnstring As String = "Players:" & Environment.NewLine & String.Join(Environment.NewLine, playernames)
+ Dim returnstring As String = Application.Current.FindResource("Players").ToString & ":" & Environment.NewLine & String.Join(Environment.NewLine, playernames)
Return returnstring
End Function
diff --git a/MinecraftLauncher/Extensions/Converters/NullToBooleanConverter.vb b/MinecraftLauncher/Extensions/Converters/NullToBooleanConverter.vb
new file mode 100644
index 0000000..642dc91
--- /dev/null
+++ b/MinecraftLauncher/Extensions/Converters/NullToBooleanConverter.vb
@@ -0,0 +1,17 @@
+Imports System.Collections.Generic
+Imports System.Linq
+Imports System.Text
+Imports System.Threading.Tasks
+Imports System.Globalization
+Imports System.Windows.Data
+
+Class NullToBooleanConverter
+ Implements IValueConverter
+ Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
+ Return value IsNot Nothing
+ End Function
+
+ Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
+ Return Binding.DoNothing
+ End Function
+End Class
diff --git a/MinecraftLauncher/McMetroLauncher.vbproj b/MinecraftLauncher/McMetroLauncher.vbproj
index 7857163..32fd023 100644
--- a/MinecraftLauncher/McMetroLauncher.vbproj
+++ b/MinecraftLauncher/McMetroLauncher.vbproj
@@ -83,7 +83,7 @@
true
- true
+ falseMy Project\app.manifest
@@ -191,7 +191,8 @@
-
+
+
@@ -201,6 +202,9 @@
+
+
+
diff --git a/MinecraftLauncher/Models/Language.vb b/MinecraftLauncher/Models/Language.vb
index b215646..432c03f 100644
--- a/MinecraftLauncher/Models/Language.vb
+++ b/MinecraftLauncher/Models/Language.vb
@@ -2,7 +2,7 @@
Public Class Language
Private _Name As String
- _
+
Public Property Name() As String
Get
Return _Name
@@ -13,6 +13,7 @@ Public Class Language
End Property
Private _path As String
+
Public Property Path() As String
Get
Return _path
diff --git a/MinecraftLauncher/Models/Settings.vb b/MinecraftLauncher/Models/Settings.vb
index 06affd8..b9c4d35 100644
--- a/MinecraftLauncher/Models/Settings.vb
+++ b/MinecraftLauncher/Models/Settings.vb
@@ -26,7 +26,9 @@ Public Class Settings
Private Shared Async Function ReadSettings() As Task(Of Settings)
Dim text As String = File.ReadAllText(SettingsFile.FullName)
- Return Await JsonConvert.DeserializeObjectAsync(Of Settings)(text, New JsonSerializerSettings() With {.DefaultValueHandling = DefaultValueHandling.Ignore, .NullValueHandling = NullValueHandling.Ignore})
+ Dim settings As Settings = Await JsonConvert.DeserializeObjectAsync(Of Settings)(text, New JsonSerializerSettings() With {.DefaultValueHandling = DefaultValueHandling.Ignore, .NullValueHandling = NullValueHandling.Ignore})
+ settings.ActivLanguage = settings.lstLanguages.Where(Function(p) p.Code = settings.ActivLanguage.Code).First
+ Return settings
End Function
Public Function Save() As Boolean
If mcpfad = GlobalInfos.mcpfad.FullName Then
diff --git a/MinecraftLauncher/ViewModels/ForgeInstallerViewModel.vb b/MinecraftLauncher/ViewModels/ForgeInstallerViewModel.vb
new file mode 100644
index 0000000..394e8b5
--- /dev/null
+++ b/MinecraftLauncher/ViewModels/ForgeInstallerViewModel.vb
@@ -0,0 +1,30 @@
+Public Class ForgeInstallerViewModel
+ Inherits PropertyChangedBase
+
+#Region "Singleton & Constructor"
+ Private Shared _Instance As ForgeInstallerViewModel
+ Public Shared ReadOnly Property Instance As ForgeInstallerViewModel
+ Get
+ If _Instance Is Nothing Then _Instance = New ForgeInstallerViewModel
+ Return _Instance
+ End Get
+ End Property
+
+ Public Sub New()
+ End Sub
+
+#End Region
+
+#Region "Properties"
+ Private _installerdownloading As Boolean
+ Public Property installerdownloading As Boolean
+ Get
+ Return _installerdownloading
+ End Get
+ Set(value As Boolean)
+ SetProperty(value, _installerdownloading)
+ End Set
+ End Property
+#End Region
+
+End Class
diff --git a/MinecraftLauncher/ViewModels/LiteLoaderInstallerViewModel.vb b/MinecraftLauncher/ViewModels/LiteLoaderInstallerViewModel.vb
new file mode 100644
index 0000000..09f0dcb
--- /dev/null
+++ b/MinecraftLauncher/ViewModels/LiteLoaderInstallerViewModel.vb
@@ -0,0 +1,30 @@
+Public Class LiteLoaderInstallerViewModel
+ Inherits PropertyChangedBase
+
+#Region "Singleton & Constructor"
+ Private Shared _Instance As LiteLoaderInstallerViewModel
+ Public Shared ReadOnly Property Instance As LiteLoaderInstallerViewModel
+ Get
+ If _Instance Is Nothing Then _Instance = New LiteLoaderInstallerViewModel
+ Return _Instance
+ End Get
+ End Property
+
+ Public Sub New()
+ End Sub
+
+#End Region
+
+#Region "Properties"
+ Private _installerdownloading As Boolean
+ Public Property installerdownloading As Boolean
+ Get
+ Return _installerdownloading
+ End Get
+ Set(value As Boolean)
+ SetProperty(value, _installerdownloading)
+ End Set
+ End Property
+#End Region
+
+End Class
diff --git a/MinecraftLauncher/ViewModels/MainViewModel.vb b/MinecraftLauncher/ViewModels/MainViewModel.vb
index 045bb4c..c404b7e 100644
--- a/MinecraftLauncher/ViewModels/MainViewModel.vb
+++ b/MinecraftLauncher/ViewModels/MainViewModel.vb
@@ -149,17 +149,17 @@ Public Class MainViewModel
Get
If columnName = "Username" Then
If String.IsNullOrWhiteSpace(Username) Then
- Return "Gib einen Benutzernamen ein"
+ Return Application.Current.FindResource("UsernameMissing").ToString
ElseIf Not OnlineMode Then
'Username Validation
If Username.Length < 3 OrElse Username.Length > 16 Then
- Return "3 - 16 Zeichen"
+ Return "3 - 16 " & Application.Current.FindResource("Characters").ToString
Else
Dim regex As New Regex("^[A-Za-z0-9_-]{2,16}$")
Dim match As Match = regex.Match(Username)
If Not match.Success Then
- Return "Nur Buchstaben, Zahlen, Binde- und Unterstriche"
+ Return Application.Current.FindResource("NoSpecialChars").ToString
End If
End If
End If
@@ -219,7 +219,7 @@ Public Class MainViewModel
ls.Add(service)
Next
Catch ex As WebException
- ls.Add(New AccentColorMenuData() With {.Name = "Fehler beim laden", .ColorBrush = CType(ThemeManager.Accents.Where(Function(p) p.Name = "Red").First.Resources("AccentColorBrush"), System.Windows.Media.Brush)})
+ ls.Add(New AccentColorMenuData() With {.Name = Application.Current.FindResource("ErrorLoading").ToString, .ColorBrush = CType(ThemeManager.Accents.Where(Function(p) p.Name = "Red").First.Resources("AccentColorBrush"), System.Windows.Media.Brush)})
'TODO: Failed to get Service Statuses
End Try
ServiceStatuses = New ObservableCollection(Of AccentColorMenuData)(ls)
diff --git a/MinecraftLauncher/ViewModels/UpdaterViewModel.vb b/MinecraftLauncher/ViewModels/UpdaterViewModel.vb
new file mode 100644
index 0000000..c52de23
--- /dev/null
+++ b/MinecraftLauncher/ViewModels/UpdaterViewModel.vb
@@ -0,0 +1,30 @@
+Public Class UpdaterViewModel
+ Inherits PropertyChangedBase
+
+#Region "Singleton & Constructor"
+ Private Shared _Instance As UpdaterViewModel
+ Public Shared ReadOnly Property Instance As UpdaterViewModel
+ Get
+ If _Instance Is Nothing Then _Instance = New UpdaterViewModel
+ Return _Instance
+ End Get
+ End Property
+
+ Public Sub New()
+ End Sub
+
+#End Region
+
+#Region "Properties"
+ Private _installerdownloading As Boolean
+ Public Property installerdownloading As Boolean
+ Get
+ Return _installerdownloading
+ End Get
+ Set(value As Boolean)
+ SetProperty(value, _installerdownloading)
+ End Set
+ End Property
+#End Region
+
+End Class
diff --git a/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml b/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml
index 2a0c855..d154eaf 100644
--- a/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml
+++ b/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml
@@ -4,18 +4,18 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
- Title="Version zu Profil hinzufügen"
+ Title="{DynamicResource AddVersionToProfile}"
Height="222"
Width="429"
ResizeMode="CanMinimize"
WindowStartupLocation="CenterScreen"
DataContext="{x:Static local:MainViewModel.Instance}">
-
-
+
+
-
-
+
+
diff --git a/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml.vb b/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml.vb
index 8e977fd..97387e6 100644
--- a/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml.vb
+++ b/MinecraftLauncher/Windows/Forge_ProfileEditor.xaml.vb
@@ -18,7 +18,7 @@ Public Class Forge_ProfileEditor
Me.Close()
Else
If Profiles.List.Contains(tb_newprofilename.Text) Then
- Await Me.ShowMessageAsync("Fehler", "Profil existiert bereits: " & tb_newprofilename.Text)
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, Application.Current.FindResource("ProfileExists").ToString & ": " & tb_newprofilename.Text)
Else
Await Profiles.Add(New Profiles.Profile With {.name = tb_newprofilename.Text, .lastVersionId = Versionname})
Profiles.Get_Profiles()
diff --git a/MinecraftLauncher/Windows/Forge_installer.xaml b/MinecraftLauncher/Windows/Forge_installer.xaml
index 258ddec..c9f38d3 100644
--- a/MinecraftLauncher/Windows/Forge_installer.xaml
+++ b/MinecraftLauncher/Windows/Forge_installer.xaml
@@ -5,13 +5,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Behaviours="clr-namespace:MahApps.Metro.Behaviours;assembly=MahApps.Metro"
- Title="Minecraft Forge"
+ Title="{DynamicResource MinecraftForge}"
Height="450"
Width="680"
MinHeight="450"
MinWidth="680"
ResizeMode="CanResizeWithGrip"
- WindowStartupLocation="CenterScreen">
+ WindowStartupLocation="CenterScreen"
+ DataContext="{x:Static local:ForgeInstallerViewModel.Instance}">
@@ -22,7 +23,7 @@
-
+
@@ -31,24 +32,35 @@
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
diff --git a/MinecraftLauncher/Windows/Forge_installer.xaml.vb b/MinecraftLauncher/Windows/Forge_installer.xaml.vb
index cc72731..8085eba 100644
--- a/MinecraftLauncher/Windows/Forge_installer.xaml.vb
+++ b/MinecraftLauncher/Windows/Forge_installer.xaml.vb
@@ -55,13 +55,13 @@ Class Forge_installer
Private Async Sub btn_download_Click(sender As Object, e As RoutedEventArgs) Handles btn_download.Click
If lst.SelectedIndex = -1 Then
- Await Me.ShowMessageAsync(Nothing, "Bitte wähle eine Forge Version Aus!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Nothing, Application.Current.FindResource("ChooseForgeVersion").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
ElseIf wc.IsBusy = True Then
wc.CancelAsync()
Else
btn_download_auto.IsEnabled = False
pb_download.IsIndeterminate = False
- forge_anleitung.IsSelected = True
+ forge_instructions.IsSelected = True
Dim Legacyforgefile As Boolean = False
If Forge.LegacyBuildList.Select(Function(p) p.version).Contains(build.version) Then
Legacyforgefile = True
@@ -72,7 +72,7 @@ Class Forge_installer
End If
filename = IO.Path.Combine(cachefolder.FullName, String.Format("forge-{0}-{1}-installer.jar", build.mcversion, build.version))
wc.DownloadFileAsync(url, filename)
- btn_download.Content = "Abbrechen"
+ ForgeInstallerViewModel.Instance.installerdownloading = True
End If
End Sub
@@ -88,7 +88,7 @@ Class Forge_installer
Process.Start(filename)
End If
btn_download_auto.IsEnabled = True
- btn_download.Content = "Herunterladen und Installieren"
+ ForgeInstallerViewModel.Instance.installerdownloading = False
End Sub
Private Sub wc_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
@@ -98,10 +98,10 @@ Class Forge_installer
Private Async Sub btn_download_auto_Click(sender As Object, e As RoutedEventArgs) Handles btn_download_auto.Click
Try
If lst.SelectedIndex = -1 Then
- Await Me.ShowMessageAsync(Nothing, "Bitte wähle eine Forge Version Aus!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Nothing, Application.Current.FindResource("ChooseForgeVersion").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
Else
stripmeta = False
- controller = Await Me.ShowProgressAsync("Forge wird installiert", "Bitte warten", False, New MetroDialogSettings() With {.ColorScheme = MetroDialogColorScheme.Theme})
+ controller = Await Me.ShowProgressAsync(Application.Current.FindResource("InstallingForge").ToString, Application.Current.FindResource("PleaseWait").ToString, False, New MetroDialogSettings() With {.ColorScheme = MetroDialogColorScheme.Theme})
Legacyforge = False
If Forge.LegacyBuildList.Select(Function(p) p.version).Contains(build.version) Then
Legacyforge = True
@@ -173,7 +173,7 @@ Class Forge_installer
If .Exists = False Then
'Download
wcauto = New WebClient
- controller.SetMessage("Lade Version herunter...")
+ controller.SetMessage(Application.Current.FindResource("DownloadingVersion").ToString)
AddHandler wcauto.DownloadProgressChanged, Sub(sender2 As Object, e2 As Net.DownloadProgressChangedEventArgs)
Dim progress As Double = 1 / 3 + e2.ProgressPercentage / 100 / 3
If progress <= 1 Then
@@ -195,7 +195,7 @@ Class Forge_installer
'Show Error
End Try
'Copy
- controller.SetMessage("Installiere Version...")
+ controller.SetMessage(Application.Current.FindResource("InstallingVersion").ToString)
Dim targetpath As New FileInfo(Path.Combine(versionsfolder.FullName, versionsname, versionsname & ".jar"))
If targetpath.Directory.Exists = False Then
targetpath.Directory.Create()
@@ -244,7 +244,7 @@ Class Forge_installer
Await Downloadlibs()
End With
ElseIf e.Error IsNot Nothing Then
- controller.SetMessage("Fehler beim herunterladen: " & e.Error.Message & Environment.NewLine & libpath.FullName)
+ controller.SetMessage(Application.Current.FindResource("ErrorDownloading").ToString & ": " & e.Error.Message & Environment.NewLine & libpath.FullName)
controller.SetCancelable(True)
While controller.IsCanceled = False
Await Task.Delay(10)
@@ -259,7 +259,7 @@ Class Forge_installer
Async Function Downloadlibs() As Task
If build.mcversion = "1.5.2" Then
- controller.SetMessage("Bitte warten, erforderliche Libraries werden heruntergeladen")
+ controller.SetMessage(Application.Current.FindResource("DownloadingRequiredLibraries").ToString)
controller.SetIndeterminate()
Try
Await New WebClient().DownloadFileTaskAsync("http://files.minecraftforge.net/fmllibs/bcprov-jdk15on-148.jar.stash", Path.Combine(mcpfad.FullName, "lib", "bcprov-jdk15on-148.jar"))
@@ -279,7 +279,7 @@ Class Forge_installer
libpath = New FileInfo(IO.Path.Combine(librariesfolder.FullName, .path) & ".pack.xz")
Dim customurl As String = .url
Dim url As String = customurl & .path & ".pack.xz"
- controller.SetMessage("Lade Library herunter: " & libpath.FullName)
+ controller.SetMessage(Application.Current.FindResource("DownloadLibrary").ToString & ": " & libpath.FullName)
If Not libpath.Directory.Exists Then
libpath.Directory.Create()
End If
@@ -350,9 +350,9 @@ Class Forge_installer
Async Sub Downloadlibcompleted(sender As Object, e As ComponentModel.AsyncCompletedEventArgs)
If e.Cancelled = False AndAlso e.Error Is Nothing Then
- controller.SetMessage("Entpacke Library : " & libpath.FullName)
+ controller.SetMessage(Application.Current.FindResource("UnpackingLibrary").ToString & ": " & libpath.FullName)
If Await Unpack.Unpack(libpath, libpath) = False Then
- controller.SetMessage("Fehler beim entpacken: " & libpath.FullName)
+ controller.SetMessage(Application.Current.FindResource("ErrorUnpacking").ToString & ": " & libpath.FullName)
controller.SetCancelable(True)
While controller.IsCanceled = False
Await Task.Delay(10)
@@ -364,7 +364,7 @@ Class Forge_installer
End If
'libpath.Delete()
ElseIf e.Error IsNot Nothing Then
- controller.SetMessage("Fehler beim herunterladen: " & e.Error.Message & Environment.NewLine & libpath.FullName)
+ controller.SetMessage(Application.Current.FindResource("ErrorDownloading").ToString & ": " & e.Error.Message & Environment.NewLine & libpath.FullName)
controller.SetCancelable(True)
While controller.IsCanceled = False
Await Task.Delay(10)
diff --git a/MinecraftLauncher/Windows/LiteLoader_installer.xaml b/MinecraftLauncher/Windows/LiteLoader_installer.xaml
index 9fad929..183be50 100644
--- a/MinecraftLauncher/Windows/LiteLoader_installer.xaml
+++ b/MinecraftLauncher/Windows/LiteLoader_installer.xaml
@@ -1,30 +1,43 @@

+ WindowStartupLocation="CenterScreen"
+ DataContext="{x:Static local:LiteLoaderInstallerViewModel.Instance}">
-
+
-
+
+
+
+
+
-
+
-
+
-
-
+
+
-
+
diff --git a/MinecraftLauncher/Windows/LiteLoader_installer.xaml.vb b/MinecraftLauncher/Windows/LiteLoader_installer.xaml.vb
index cc0f5d1..27c438f 100644
--- a/MinecraftLauncher/Windows/LiteLoader_installer.xaml.vb
+++ b/MinecraftLauncher/Windows/LiteLoader_installer.xaml.vb
@@ -9,7 +9,7 @@ Public Class LiteLoader_installer
WithEvents wc As New WebClient
Private filename As String
- Private Async Sub ForgeManager_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
+ Private Async Sub LiteLoader_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim theme = ThemeManager.DetectAppStyle(Application.Current)
If theme.Item1.Name = "BaseLight" Then
btn_copy_image.Source = ImageConvert.GetImageStream(My.Resources.appbar_page_copy)
@@ -27,24 +27,16 @@ Public Class LiteLoader_installer
Private Async Sub btn_download_Click(sender As Object, e As RoutedEventArgs) Handles btn_download.Click
If lst.SelectedIndex = -1 Then
- Await Me.ShowMessageAsync(Nothing, "Bitte wähle eine LiteLoader Version Aus!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Nothing, Application.Current.FindResource("ChooseLiteLoaderVersion").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
ElseIf wc.IsBusy = True Then
wc.CancelAsync()
Else
- forge_anleitung.IsSelected = True
+ liteloader_instructions.IsSelected = True
Dim url As New Uri(DirectCast(lst.SelectedItem, LiteLoader.LiteLoaderEintrag).DownloadLink)
Dim ls As IList(Of String) = url.Segments
filename = IO.Path.Combine(cachefolder.FullName, ls.Last)
wc.DownloadFileAsync(url, filename)
- btn_download.Content = "Abbrechen"
-
- 'Dim dateiendung As String = "zip"
- 'version = DirectCast(lst.SelectedItem, ForgeEintrag).version
- 'build = DirectCast(lst.SelectedItem, ForgeEintrag).build
- 'profilename = String.Format("{1}-Forge{2}", version, build)
- 'filename = String.Format("{1}\{2}.{3}", cachefolder, profilename, dateiendung)
- 'wc.DownloadFileAsync(New Uri(url), filename)
- ''Installieren
+ LiteLoaderInstallerViewModel.Instance.installerdownloading = True
End If
End Sub
@@ -58,20 +50,8 @@ Public Class LiteLoader_installer
Else
pb_download.IsIndeterminate = True
Process.Start(filename)
- ''Entpacken... und installieren
- 'UnzipForge(filename)
- ''Profiles hinzufügen
- 'Dim profile As New Profile(profilename, Nothing, version, Nothing, Nothing, Nothing, Nothing, Nothing)
- 'If Profiles.List.Contains(profilename) = True Then
- ' Profiles.Edit(profilename, profile)
- 'Else
- ' Profiles.Add(profile)
- 'End If
- 'pb_download.IsIndeterminate = False
- 'pb_download.Value = pb_download.Maximum
- 'downloading = False
End If
- btn_download.Content = "Herunterladen und Installieren"
+ LiteLoaderInstallerViewModel.Instance.installerdownloading = False
End Sub
Private Sub wc_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
diff --git a/MinecraftLauncher/Windows/Login.xaml b/MinecraftLauncher/Windows/Login.xaml
index 1243a53..8a877e6 100644
--- a/MinecraftLauncher/Windows/Login.xaml
+++ b/MinecraftLauncher/Windows/Login.xaml
@@ -18,7 +18,7 @@
-
+
@@ -34,11 +34,11 @@
@@ -72,18 +72,18 @@
- Was soll ich nehmen?
+
-
+
- Passwort vergessen?
+
-
-
+
+
diff --git a/MinecraftLauncher/Windows/MainWindow.xaml b/MinecraftLauncher/Windows/MainWindow.xaml
index ea5e00d..7c79f5c 100644
--- a/MinecraftLauncher/Windows/MainWindow.xaml
+++ b/MinecraftLauncher/Windows/MainWindow.xaml
@@ -1,5 +1,4 @@
-
-
-
+
+
-
+
@@ -32,6 +32,11 @@
+
+
+
+
+
@@ -40,11 +45,11 @@
-
+
-
@@ -64,33 +69,33 @@
TargetType="{x:Type MenuItem}"
BasedOn="{StaticResource MetroMenuItem}">
+ Value="{Binding ChangeAccentCommand}" />
+ Value="{StaticResource AppThemeMenuIcon}" />
+ Value="{Binding Name, Mode=OneWay}" />
-
-
+
+
+
+
-
+
@@ -112,7 +120,7 @@
-
+
@@ -122,21 +130,19 @@
-
-
-
+
+ Grid.Row="2"
+ Margin="10">
+ Margin="10"
+ Content="{DynamicResource Save}" />
+ Margin="10"
+ Content="{DynamicResource Cancel}"
+ Click="ShowSettings" />
@@ -147,7 +153,7 @@
-
+
@@ -158,7 +164,7 @@
-
+
-
+
+
+
+
-
+
-
-
+
+
+
+
+
-
+
@@ -489,66 +494,66 @@
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Background="Transparent"
+ IsComposing="True"
+ Orientation="Vertical"
+ DragOpacity="0.75"
+ DragScale="1.2"
+ DataUpdated="OnDataUpdated">
+ Amplitude="0.35"/>
+ Amplitude="0.65"/>
-
+
-
-
-
-
+
+
+
+
-
+
-
+
+ ItemsSource="{Binding Ram}"
+ SeriesTitle="{DynamicResource Ram}"
+ ValueMember="Count" />
-
+ ItemsSource="{Binding CPU}"
+ SeriesTitle="{DynamicResource CPU}"
+ ValueMember="Count" />
-
-
-
+
-
+
@@ -598,7 +603,7 @@
-
+
@@ -610,16 +615,16 @@
-
+
-
-
+
+
diff --git a/MinecraftLauncher/Windows/MainWindow.xaml.vb b/MinecraftLauncher/Windows/MainWindow.xaml.vb
index 05f7741..4dbe983 100644
--- a/MinecraftLauncher/Windows/MainWindow.xaml.vb
+++ b/MinecraftLauncher/Windows/MainWindow.xaml.vb
@@ -208,7 +208,7 @@ Public Class MainWindow
resources_dir.Create()
End If
If indexesfile(assets_index_name).Exists = False Then
- Write("Lade Resourcen-Liste herunter")
+ Write(Application.Current.FindResource("DownloadingResourcesIndexes").ToString)
AddHandler wcindexes.DownloadFileCompleted, AddressOf downloadindexesfinished
If cacheindexesfile(assets_index_name).Directory.Exists = False Then
cacheindexesfile(assets_index_name).Directory.Create()
@@ -237,7 +237,7 @@ Public Class MainWindow
Async Function Parse_Resources() As Task
MainWindowViewModel.Instance.pb_download_IsIndeterminate = False
Await Task.Run(New Action(Sub()
- Write("Lade Resourcen herunter")
+ Write(Application.Current.FindResource("DownloadingResources").ToString)
Dim indexjo As JObject = JObject.Parse(File.ReadAllText(indexesfile(assets_index_name).FullName))
Dim indexesobjects As IList(Of resourcesindexobject) = New List(Of resourcesindexobject)
Dim virtual As Boolean
@@ -286,7 +286,7 @@ Public Class MainWindow
resource.Directory.Create()
End If
wcresources.DownloadFileAsync(New Uri(resourceurl(currentresourcesobject.hash)), resource.FullName)
- Write("Resource wird heruntergeladen (Versuch " & resourcesdownloadtry & "): " & resource.FullName)
+ Write(Application.Current.FindResource("DownloadingResource").ToString & " (" & Application.Current.FindResource("Try").ToString & " " & resourcesdownloadtry & "): " & resource.FullName)
Else
resourcesdownloadindex += 1
DownloadResources()
@@ -300,7 +300,7 @@ Public Class MainWindow
Private Sub wcresources_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wcresources.DownloadFileCompleted
If e.Cancelled = False AndAlso e.Error Is Nothing Then
If resourcesdownloadtry > 3 Then
- Write("Der Download wurde aufgrund zu vieler Fehlversuche abgebrochen!", LogLevel.ERROR)
+ Write(Application.Current.FindResource("DownloadCanceledTooManyAttempts").ToString & "!", LogLevel.ERROR)
Startinfos.IsStarting = False
resourcesdownloading = False
Exit Sub
@@ -310,9 +310,9 @@ Public Class MainWindow
'Nächste Resource Downloaden
resourcesdownloadindex += 1
resourcesdownloadtry = 1
- Write("Resource erfolgreich heruntergeladen und Hash verglichen")
+ Write(Application.Current.FindResource("DownloadingResourceSuccessful").ToString)
Else
- 'Resource erneut heruntergeladen, Versuch erhöhen:
+ 'Resource erneut herunterladen, Versuch erhöhen:
resourcesdownloadtry += 1
End If
DownloadResources()
@@ -324,7 +324,7 @@ Public Class MainWindow
resourcesdownloading = False
If resourcesindexes.virtual = True Then
'Alle keys in den ordner :"virtual\legacy" kopieren
- Write("Virtuelle Resourcen werden erstellt")
+ Write(String.Format(Application.Current.FindResource("CreateVirtualResources").ToString, assetspath.FullName))
For Each item As resourcesindexobject In resourcesindexes.objects
Dim destination As New FileInfo(Path.Combine(assetspath.FullName, "virtual", assets_index_name, item.key.Replace("/", "\")))
If destination.Directory.Exists = False Then
@@ -353,7 +353,7 @@ Public Class MainWindow
bytes = e.BytesReceived / 1000000
Einheit = "MB"
End If
- MainWindowViewModel.Instance.lbl_downloadstatus_Content = String.Format("{0}% - {1} {2} von {3} {4} heruntergeladen", e.ProgressPercentage, Math.Round(bytes, 2), Einheit, Math.Round(totalbytes, 2), Einheit)
+ MainWindowViewModel.Instance.lbl_downloadstatus_Content = String.Format(Application.Current.FindResource("DownloadProgressFormat").ToString, e.ProgressPercentage, Math.Round(bytes, 2), Einheit, Math.Round(totalbytes, 2))
End Sub
Private Sub wc_libraries_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc_libraries.DownloadProgressChanged
@@ -379,8 +379,7 @@ Public Class MainWindow
Public Function MD5FileHash(ByVal sFile As String) As String
Dim MD5 As New MD5CryptoServiceProvider
Dim Hash As Byte()
- Dim Result As String = ""
- Dim Tmp As String = ""
+ Dim Result As String = Nothing
Dim FN As New FileStream(sFile, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
MD5.ComputeHash(FN)
@@ -398,7 +397,7 @@ Public Class MainWindow
Dim CacheOutputfile As New FileInfo(Path.Combine(cachefolder.FullName, "versions", versionid, versionid & ".jar"))
'Jar File download
- Write("Prüfe, ob die Version aktuell ist")
+ Write(Application.Current.FindResource("CheckVersionUpToDate").ToString)
Dim todownload As Boolean = False
If Outputfile.Exists = False Then
todownload = True
@@ -422,7 +421,7 @@ Public Class MainWindow
End If
End If
If todownload = True Then
- Write("Lade Minecraft Version " & versionid & " herunter")
+ Write(String.Format(Application.Current.FindResource("DownloadingMinecraftVersion").ToString, versionid))
Try
If CacheOutputfile.Directory.Exists = False Then
CacheOutputfile.Directory.Create()
@@ -431,7 +430,7 @@ Public Class MainWindow
wcversionsdownload.DownloadFileAsync(New Uri(VersionsURl), CacheOutputfile.FullName)
AddHandler wcversionsdownload.DownloadFileCompleted, AddressOf versiondownloadfinished
Catch ex As Exception
- Write("Fehler beim herunterladen von Minecraft " & versionid & " :" & Environment.NewLine & ex.Message, LogLevel.ERROR)
+ Write(String.Format(Application.Current.FindResource("ErrorDownloadingMinecraftVersion").ToString, versionid) & ":" & Environment.NewLine & ex.Message & Environment.NewLine & ex.StackTrace, LogLevel.ERROR)
Startinfos.IsStarting = False
End Try
Else
@@ -454,7 +453,7 @@ Public Class MainWindow
CacheOutputfile.MoveTo(Outputfile.FullName)
Await downloadversionsjson()
Else
- Write("Fehler beim herunterladen von Minecraft " & Startinfos.Version.id & " :" & Environment.NewLine & e.Error.Message, LogLevel.ERROR)
+ Write(String.Format(Application.Current.FindResource("ErrorDownloadingMinecraftVersion").ToString, Startinfos.Version.id) & ":" & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace, LogLevel.ERROR)
Startinfos.IsStarting = False
End If
End Sub
@@ -499,7 +498,7 @@ Public Class MainWindow
wcversionsjsondownload.DownloadFileAsync(New Uri(VersionsJSONURL), CacheOutputfileJSON.FullName)
AddHandler wcversionsjsondownload.DownloadFileCompleted, AddressOf jsondownloadfinished
Catch ex As Exception
- Write("Fehler beim herunterladen von Minecraft " & versionid & " :" & Environment.NewLine & ex.Message, LogLevel.ERROR)
+ Write(String.Format(Application.Current.FindResource("ErrorDownloadingMinecraftVersion").ToString, versionid) & ":" & Environment.NewLine & ex.Message & Environment.NewLine & ex.StackTrace, LogLevel.ERROR)
Startinfos.IsStarting = False
End Try
Else
@@ -521,7 +520,7 @@ Public Class MainWindow
CacheOutputfileJSON.MoveTo(OutputfileJSON.FullName)
Await Versiondownloadfinished_start()
ElseIf e.Error IsNot Nothing Then
- Write("Ein Fehler ist beim herunterladen der Version aufgetreten: " & e.Error.Message, LogLevel.ERROR)
+ Write(String.Format(Application.Current.FindResource("ErrorDownloadingMinecraftVersion").ToString, versionid) & ":" & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace, LogLevel.ERROR)
Startinfos.IsStarting = False
End If
End Sub
@@ -531,7 +530,7 @@ Public Class MainWindow
If Startinfos.Versionsinfo Is Nothing Then
Await Parse_VersionsInfo(Startinfos.Version)
If Startinfos.Versionsinfo.minimumLauncherVersion > supportedLauncherVersion Then
- Write("Diese Minecraft Version wird vom Launcher noch nicht vollständig unterstützt. Es könnte zu Fehlern kommen!", LogLevel.ERROR)
+ Write(Application.Current.FindResource("VersionNotSupported").ToString, LogLevel.ERROR)
End If
End If
If Startinfos.IsStarting = True Then
@@ -658,21 +657,21 @@ Public Class MainWindow
Tounpack = True
url = url.Insert(url.Length, ".pack.xz")
outputfile = outputfile.Insert(outputfile.Length, ".pack.xz")
- Write("Library wird von den Forge Servern heruntergeladen (Versuch " & librariesdownloadtry & "): " & librarypath.FullName)
+ Write(Application.Current.FindResource("DownloadingLibraryFromForgeServer").ToString & " (" & Application.Current.FindResource("Try").ToString & " " & librariesdownloadtry & "): " & librarypath.FullName)
Else
If forgeuniversal = True Then
- Write("Minecraft Forge Library wird automatisch heruntergeladen (Versuch " & librariesdownloadtry & "): " & librarypath.FullName)
+ Write(Application.Current.FindResource("DownloadingMinecraftForgeAutomatically").ToString & " (" & Application.Current.FindResource("Try").ToString & " " & librariesdownloadtry & "): " & librarypath.FullName)
End If
End If
If downloadforgelib = False Then
- Write("Library wird heruntergeladen (Versuch " & librariesdownloadtry & "): " & outputfile)
+ Write(Application.Current.FindResource("DownloadingLibrary").ToString & " (" & Application.Current.FindResource("Try").ToString & " " & librariesdownloadtry & "): " & outputfile)
End If
wc_libraries.DownloadFileAsync(New Uri(url), outputfile)
Else
If String.IsNullOrWhiteSpace(Currentlibrarysha1) Then
- Write("Library konnte nicht auf Hash überprüft werden und wird übersprungen, in der Annahme, dass die lokale Datei gut ist: " & librarypath.FullName, LogLevel.WARNING)
+ Write(Application.Current.FindResource("LibraryExistsNotChecksumMatched").ToString & ": " & librarypath.FullName, LogLevel.WARNING)
Else
- Write("Library existiert bereits: " & librarypath.FullName)
+ Write(Application.Current.FindResource("LibraryAlreadyExists").ToString & ": " & librarypath.FullName)
End If
librariesdownloadindex += 1
DownloadLibraries()
@@ -693,14 +692,14 @@ Public Class MainWindow
Private Async Sub wc_libraries_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc_libraries.DownloadFileCompleted
If e.Error IsNot Nothing Then
- Write("Library konnte nicht heruntergeladen werden: " & e.Error.Message & Environment.NewLine & "Falls du gerade Forge gestartet hast, installiere es erneut!", LogLevel.ERROR)
+ Write(Application.Current.FindResource("ErrorDownloadingLibrary").ToString & ": " & e.Error.Message & Environment.NewLine & Application.Current.FindResource("ReinstallForgeIfStarted").ToString & "!", LogLevel.ERROR)
librariesdownloadindex += 1
librariesdownloadtry = 1
librariesdownloadfailures += 1
Try
File.Delete(Path.Combine(librariesfolder.FullName, Currentlibrary.path))
Catch Ex As Exception
- Write("Ein Fehler ist beim Löschen einer Library aufgetreten!", LogLevel.WARNING)
+ Write(Application.Current.FindResource("ErrorDeletingLibrary").ToString & "!", LogLevel.WARNING)
End Try
DownloadLibraries()
End If
@@ -713,16 +712,16 @@ Public Class MainWindow
If Tounpack = True Then
Dim input As New FileInfo(libpath & ".pack.xz")
Dim output As New FileInfo(libpath)
- Write("Library wird entpackt: " & libpath)
+ Write(Application.Current.FindResource("UnpackingLibrary").ToString & ": " & libpath)
If Await Unpack.Unpack(input, output) = False Then
'ShowError
- Write("Fehler beim entpacken von: " & libpath)
+ Write(Application.Current.FindResource("ErrorUnpackingLibrary").ToString & ": " & libpath)
End If
input.Delete()
End If
If librariesdownloadtry > 3 Then
librariesdownloadfailures += 1
- Write("Der Download wurde aufgrund zu vieler Fehlversuche abgebrochen!" & Environment.NewLine & "Falls du gerade Forge gestartet hast, installiere es erneut!", LogLevel.ERROR)
+ Write(Application.Current.FindResource("DownloadCanceledTooManyAttempts").ToString & "!" & Environment.NewLine & Application.Current.FindResource("ReinstallForgeIfStarted").ToString & "!", LogLevel.ERROR)
Startinfos.IsStarting = False
librariesdownloading = False
Else
@@ -731,14 +730,14 @@ Public Class MainWindow
'Nächste Library Downloaden
librariesdownloadindex += 1
librariesdownloadtry = 1
- Write("Library erfolgreich heruntergeladen")
+ Write(Application.Current.FindResource("DownloadingLibrarySuccessful").ToString)
Else
'Hash überprüfen
If SHA1FileHash(libpath).ToLower = Currentlibrarysha1 Then
'Nächste Library Downloaden
librariesdownloadindex += 1
librariesdownloadtry = 1
- Write("Library erfolgreich heruntergeladen und Hash verglichen")
+ Write(Application.Current.FindResource("DownloadingLibrarySuccessfulAndChecksumMatched").ToString)
Else
'Library erneut heruntergeladen, Versuch erhöhen:
librariesdownloadtry += 1
@@ -759,7 +758,7 @@ Public Class MainWindow
Async Function Unzip() As Task
Await Task.Run(New Action(Sub()
Try
- Write("Natives werden entpackt")
+ Write(Application.Current.FindResource("UnpackingNatives").ToString)
UnpackDirectory = Path.Combine(versionsfolder.FullName, Startinfos.Version.id, Startinfos.Version.id & "-natives-" & DateTime.Now.Ticks.ToString)
If startedversions.Contains(UnpackDirectory) = False Then
startedversions.Add(UnpackDirectory)
@@ -808,20 +807,20 @@ Public Class MainWindow
Next
End Using
Catch ex As ZipException
- Write("Fehler beim entpacken der natives: " & ex.Message, LogLevel.ERROR)
+ Write(Application.Current.FindResource("ErrorUnpackingNatives").ToString & ": " & ex.Message, LogLevel.ERROR)
End Try
End If
End With
Next
Catch ex As Exception
- Write("Fehler beim entpacken der natives. Wahrscheinlich wurde die erforderliche Library nicht heruntergeladen" & Environment.NewLine & ex.Message, LogLevel.ERROR)
+ Write(Application.Current.FindResource("ErrorUnpackingNativesLibraryMissing").ToString & Environment.NewLine & ex.Message & Environment.NewLine & ex.StackTrace, LogLevel.ERROR)
End Try
End Sub))
End Function
Async Sub Get_Startinfos()
Await Unzip()
- Write("Startinfos werden ausgelesen")
+ Write(Application.Current.FindResource("GettingStartInfos").ToString)
Dim mainClass As String = Startinfos.Versionsinfo.mainClass
Dim minecraftArguments As List(Of String) = Startinfos.Versionsinfo.minecraftArguments.Split(Chr(32)).ToList
Dim libraries As String = Nothing
@@ -933,16 +932,8 @@ Public Class MainWindow
End Sub
Async Sub Start_MC_Process(Optional Teil_Arguments As String = Nothing)
- ' Anwendungspfad setzen -> hier liegt es im Anwendungsordner
- If Startcmd(Startinfos.Profile) = Nothing Then
- Dim result As MessageDialogResult = Await Me.ShowMessageAsync("Java nicht vorhanden", "Du musst Java installieren, um Minecraft zu spielen. Jetzt herunterladen?", MessageDialogStyle.AffirmativeAndNegative)
- If result = MessageDialogResult.Affirmative Then
- Process.Start("http://java.com/de/download")
- End If
- Exit Sub
- End If
If Teil_Arguments = Nothing Then Teil_Arguments = Arguments
- Write("Starte Minecraft (Java " & Await GetJavaArch() & " Bit): " & Teil_Arguments)
+ Write(Application.Current.FindResource("StartingMinecraft").ToString & " (" & String.Format(Application.Current.FindResource("JavaArchitecture").ToString, Await GetJavaArch()) & "): " & Teil_Arguments)
mc = New Process()
With mc.StartInfo
.FileName = Startcmd(Startinfos.Profile)
@@ -986,9 +977,9 @@ Public Class MainWindow
Public Async Sub StartMC()
If Startinfos.IsStarting = True Then
- Await Me.ShowMessageAsync("Achtung", "Minecraft wird bereits gestartet!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Atention").ToString, Application.Current.FindResource("MinecraftAlreadyStarting").ToString & "!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
ElseIf cb_profiles.SelectedIndex = -1 Then
- Await Me.ShowMessageAsync(Nothing, "Wähle bitte ein Profil aus!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Nothing, Application.Current.FindResource("PleaseSelectProfile").ToString & "!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
'ElseIf tb_username.Text = Nothing Then
' Await Me.ShowMessageAsync(Nothing, "Gib bitte einen Usernamen ein!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
Else
@@ -1024,7 +1015,7 @@ Public Class MainWindow
If Versions.versions.Select(Function(p) p.id).Contains(Startinfos.Profile.lastVersionId) Then
Startinfos.Version = Versions.versions.Where(Function(p) p.id = Startinfos.Profile.lastVersionId).First
Else
- Write(Startinfos.Profile.lastVersionId & ".jar und/oder " & Startinfos.Profile.lastVersionId & ".json existiert nicht" & Environment.NewLine & "---Wähle eine andere Version aus oder, falls du gerade Forge gestartet hast, installiere es erneut!", LogLevel.ERROR)
+ Write(String.Format(Application.Current.FindResource("JarOrJsonNotFound").ToString, Startinfos.Profile.lastVersionId, Startinfos.Profile.lastVersionId) & Environment.NewLine & Application.Current.FindResource("ReinstallForgeIfStarted").ToString & "!", LogLevel.ERROR)
Startinfos.Profile = Nothing
Exit Sub
End If
@@ -1092,9 +1083,9 @@ Public Class MainWindow
Case MainWindow.LogLevel.INFO
Dispatcher.Invoke(New WriteA(AddressOf Append), Line, tb_ausgabe)
Case MainWindow.LogLevel.WARNING
- Dispatcher.Invoke(New WriteColored(AddressOf Append), "[WARNING] " & Line, tb_ausgabe, Brushes.Orange)
+ Dispatcher.Invoke(New WriteColored(AddressOf Append), "[" & Application.Current.FindResource("Warning").ToString & "] " & Line, tb_ausgabe, Brushes.Orange)
Case MainWindow.LogLevel.ERROR
- Dispatcher.Invoke(New WriteColored(AddressOf Append), "[ERROR] " & Line, tb_ausgabe, Brushes.Red)
+ Dispatcher.Invoke(New WriteColored(AddressOf Append), "[" & Application.Current.FindResource("Error").ToString & "] " & Line, tb_ausgabe, Brushes.Red)
End Select
'-Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true
@@ -1105,7 +1096,7 @@ Public Class MainWindow
'or you are using a base editing jar that is changing this class (and likely others too). If you REALLY want to run minecraft in this configuration,
'add the flag -Dfml.ignoreInvalidMinecraftCertificates=true to the 'JVM settings' in your launcher profile.
If Line.Contains("add the flag -Dfml.ignoreInvalidMinecraftCertificates=true to the 'JVM settings' in your launcher profile") Then
- Write("Ein Fehler ist aufgetreten. Bitte versuche, im ProfileEditor bei den ""JVM Argumenten"" folgendes hinzuzufügen: ""-Dfml.ignoreInvalidMinecraftCertificates=true""", MainWindow.LogLevel.ERROR)
+ Write(Application.Current.FindResource("ignoreInvalidMinecraftCertificatesMessage").ToString, MainWindow.LogLevel.ERROR)
End If
End Sub
Public Enum LogLevel
@@ -1185,7 +1176,7 @@ Public Class MainWindow
MainViewModel.Instance.selectedProfile = MainViewModel.Instance.Profiles.First
Profiles.Get_Profiles()
Else
- Await Me.ShowMessageAsync("Fehler", "Das letzte Profil kann nicht gelöscht werden!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, Application.Current.FindResource("CannotDeleteLastProfile").ToString & "!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
End If
End Sub
@@ -1249,11 +1240,6 @@ Public Class MainWindow
img_installed.Source = Nothing
btn_list_delete_mod.IsEnabled = False
End If
- If lb_mods.SelectedItems.Count > 1 Then
- btn_downloadmod.Content = lb_mods.SelectedItems.Count & " Installieren"
- Else
- btn_downloadmod.Content = "Installieren"
- End If
'cb_mods_description_language.Items.Clear()
'For Each Language As String In selected.descriptions.Select(Function(p) p.id)
' cb_mods_description_language.Items.Add(Language)
@@ -1269,11 +1255,11 @@ Public Class MainWindow
'End If
Select Case selected.type
Case "forge"
- lbl_type.Content = "Vorraussetzung: Minecraft Forge (Tools->Forge)"
+ lbl_type.Content = String.Format("{0}: {1} ({2}->{1})", Application.Current.FindResource("Prerequisite").ToString, Application.Current.FindResource("LiteLoader").ToString, Application.Current.FindResource("Tools").ToString)
Case "liteloader"
- lbl_type.Content = "Vorraussetzung: LiteLoader (Tools->LiteLoader)"
+ lbl_type.Content = String.Format("{0}: {1} ({2}->{1})", Application.Current.FindResource("Prerequisite").ToString, Application.Current.FindResource("MinecraftForge").ToString, Application.Current.FindResource("Tools").ToString)
Case Else
- lbl_type.Content = "Type: " & DirectCast(lb_mods.SelectedItem, Modifications.Mod).type
+ lbl_type.Content = Application.Current.FindResource("Typ").ToString & ": " & DirectCast(lb_mods.SelectedItem, Modifications.Mod).type
End Select
End If
End Sub
@@ -1322,7 +1308,7 @@ Public Class MainWindow
End Try
Dim fd As New VistaFolderBrowserDialog
fd.UseDescriptionForTitle = True
- fd.Description = "Mods Ordner auswählen"
+ fd.Description = Application.Current.FindResource("SelectModsFolder").ToString
fd.RootFolder = Environment.SpecialFolder.MyComputer
fd.SelectedPath = modsfolder.FullName
fd.ShowNewFolderButton = True
@@ -1340,7 +1326,7 @@ Public Class MainWindow
End Try
End Sub
Private Sub rb_mods_folder_Checked(sender As Object, e As RoutedEventArgs) Handles rb_mods_folder.Checked
- If tb_modsfolder.Text <> Nothing Then
+ If tb_modsfolder IsNot Nothing AndAlso tb_modsfolder.Text <> Nothing Then
modsfolderPath = tb_modsfolder.Text
Filter_Mods()
End If
@@ -1383,7 +1369,7 @@ Public Class MainWindow
capturedException = ExceptionDispatchInfo.Capture(ex)
End Try
If capturedException IsNot Nothing Then
- Await Me.ShowMessageAsync("Fehler", "Mod konnte nicht gelöscht werden: " & selectedmod.name & Environment.NewLine & "Falls der Mod in Minecraft geöffnet ist, schließe Minecraft zuerst!")
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, String.Format(Application.Current.FindResource("ErrorDeletingMod").ToString & "!", selectedmod.name))
End If
Next
Dim selected As Integer = lb_mods.SelectedIndex
@@ -1393,7 +1379,7 @@ Public Class MainWindow
End Function
Private Async Sub btn_downloadmod_Click(sender As Object, e As RoutedEventArgs) Handles btn_downloadmod.Click
If moddownloading = True Then
- Await Me.ShowMessageAsync("Download läuft", "Eine Mod wird bereits heruntergeladen. Warte bitte, bis diese fertig ist!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ 'Await Me.ShowMessageAsync("Download läuft", "Eine Mod wird bereits heruntergeladen. Warte bitte, bis diese fertig ist!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
Else
modsdownloadingversion = cb_modversions.SelectedItem.ToString
btn_resetmodsfoler.IsEnabled = False
@@ -1418,7 +1404,7 @@ Public Class MainWindow
Next
modsdownloadindex = 0
- controller = Await Me.ShowProgressAsync("Mods werden installiert", "Bitte warten")
+ controller = Await Me.ShowProgressAsync(Application.Current.FindResource("InstallingMods").ToString, Application.Current.FindResource("PleaseWait").ToString)
'controller.SetCancelable(True)
download_mod()
@@ -1426,10 +1412,6 @@ Public Class MainWindow
End Sub
Private Async Sub download_mod()
If modsdownloadindex < modsdownloadlist.Count Then
- If modsfolderPath.Contains(IO.Path.GetInvalidPathChars) = True Then
- Await Me.ShowMessageAsync("Fehler", "Der Pfad des Mods Ordners enthält ungültige Zeichen", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
- Exit Sub
- End If
Dim url As New Uri(modsdownloadlist.Item(modsdownloadindex).versions.Where(Function(p) p.version = modsdownloadingversion).First.downloadlink)
Dim progress As Double = modsdownloadindex / modsdownloadlist.Count
controller.SetProgress(progress)
@@ -1462,7 +1444,7 @@ Public Class MainWindow
Await controller.CloseAsync()
ElseIf e.Cancelled = True Then
'lbl_mods_status.Content = "Abgebrochen
- controller.SetMessage("Abgebrochen")
+ controller.SetMessage(Application.Current.FindResource("Canceled").ToString)
Else
Try
Dim path As String = modsfolderPath & "\" & Modsfilename
@@ -1482,11 +1464,11 @@ Public Class MainWindow
Private Async Function Mod_Download_finished(Optional Errormessage As String = Nothing) As Task
If Errormessage = Nothing Then
- controller.SetMessage("Mods erfolgreich Installiert")
+ controller.SetMessage(Application.Current.FindResource("InstallingModsSuccessful").ToString)
Await Task.Delay(1000)
Await controller.CloseAsync()
Else
- controller.SetMessage("Fehler beim Installieren der Mods: " & Errormessage)
+ controller.SetMessage(Application.Current.FindResource("ErrorInstallingMods").ToString & ": " & Errormessage)
controller.SetCancelable(True)
End If
moddownloading = False
@@ -1647,7 +1629,7 @@ Public Class MainWindow
Private Async Sub btn_delete_servers_Click(sender As Object, e As RoutedEventArgs) Handles btn_delete_servers.Click
Dim selected As Integer = lb_servers.SelectedIndex
If selected <> -1 Then
- Dim result As MessageDialogResult = Await Me.ShowMessageAsync("Server löschen", "Bist du dir sicher, dass du den Server " & Chr(34) & DirectCast(lb_servers.SelectedItem, ServerList.Server).name & Chr(34) & " entgültig löschen willst?", MessageDialogStyle.AffirmativeAndNegative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ja", .NegativeButtonText = "Nein", .ColorScheme = MetroDialogColorScheme.Accented})
+ Dim result As MessageDialogResult = Await Me.ShowMessageAsync(Application.Current.FindResource("DeleteServer").ToString, String.Format(Application.Current.FindResource("DeleteServerMessage").ToString, DirectCast(lb_servers.SelectedItem, ServerList.Server).name), MessageDialogStyle.AffirmativeAndNegative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("Yes").ToString, .NegativeButtonText = Application.Current.FindResource("No").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
If result = MessageDialogResult.Affirmative Then
lb_servers.Items.RemoveAt(selected)
MainViewModel.Instance.Servers.RemoveAt(selected)
@@ -1692,14 +1674,24 @@ Public Class MainWindow
Await Versions_Load()
'1.6.2-1.7.4
- If Version.Contains("Spigot") Then
- Dim ver As String = Version.Replace("Spigot ", "")
- Startinfos.Version = Versions.versions.Where(Function(p) p.id = ver).FirstOrDefault
- ElseIf Version.Contains("CraftBukkit") Then
- Dim ver As String = Version.Replace("CraftBukkit ", "")
- Startinfos.Version = Versions.versions.Where(Function(p) p.id = ver).FirstOrDefault
- ElseIf Version.Contains("-") = True Then
- Startinfos.Version = Versions.versions.Where(Function(p) p.id = Version.Split(CChar("-"))(1)).FirstOrDefault
+ Dim check As Boolean = True
+ Dim Servers() As String = {"Spigot", "CraftBukkit", "BungeeCord"}
+ For Each item As String In Servers
+ If Version.Contains(item) Then
+ Dim ver As String = Version.Replace(item & " ", "")
+ Startinfos.Version = Versions.versions.Where(Function(p) p.id = ver).FirstOrDefault
+ check = False
+ Exit For
+ End If
+ Next
+ If check = True Then
+ If Version.Split(CChar(" ")).Count > 1 Then
+ Startinfos.Version = Versions.versions.Where(Function(p) p.id = Version.Split(CChar(" ")).Last).FirstOrDefault
+ ElseIf Version.Contains("-") = True Then
+ Startinfos.Version = Versions.versions.Where(Function(p) p.id = Version.Split(CChar("-"))(1)).FirstOrDefault
+ Else
+ Startinfos.Version = Versions.versions.Where(Function(p) p.id = Version).FirstOrDefault
+ End If
Else
Startinfos.Version = Versions.versions.Where(Function(p) p.id = Version).FirstOrDefault
End If
@@ -1737,7 +1729,7 @@ Public Class MainWindow
End Sub
Private Async Sub download_feedthebeast()
- toolscontroller = Await Me.ShowProgressAsync("Feed the Beast wird heruntergeladen", "Bitte warten")
+ toolscontroller = Await Me.ShowProgressAsync(Application.Current.FindResource("DownloadingFTB").ToString, Application.Current.FindResource("PleaseWait").ToString)
Dim url As New Uri(Downloads.Downloadsjo("feedthebeast").Value(Of String)("url"))
Dim filename As String = Downloads.Downloadsjo("feedthebeast").Value(Of String)("filename")
Dim path As New FileInfo(IO.Path.Combine(mcpfad.FullName, "tools", filename))
@@ -1775,7 +1767,7 @@ Public Class MainWindow
End Sub
Private Async Sub download_techniclauncher()
- toolscontroller = Await Me.ShowProgressAsync("Technic Launcher wird heruntergeladen", "Bitte warten")
+ toolscontroller = Await Me.ShowProgressAsync(Application.Current.FindResource("DownloadingTechnicLauncher").ToString, Application.Current.FindResource("PleaseWait").ToString)
Dim url As String = "http://launcher.technicpack.net/launcher/{0}/TechnicLauncher.jar"
Dim filename As String = "TechnicLauncher.jar"
Dim path As New FileInfo(IO.Path.Combine(mcpfad.FullName, "tools", filename))
@@ -1858,7 +1850,7 @@ Public Class MainWindow
'Login with access token
Try
If authenticationDatabase.List.Select(Function(p) p.uuid.Replace("-", "")).Contains(profile.playerUUID) Then
- Write("Anmelden mit access token")
+ Write(Application.Current.FindResource("LoggingInWithAccessToken").ToString)
Dim Account = authenticationDatabase.List.Where(Function(p) p.uuid.Replace("-", "") = profile.playerUUID).First
If Guid.TryParse(Account.userid, New Guid) Then
Startinfos.Session = New Session() With {.AccessToken = Account.accessToken,
@@ -1895,8 +1887,8 @@ Public Class MainWindow
End Function
Async Function ShowUsername_Avatar(Account As authenticationDatabase.Account) As Task
- lbl_Username.Content = Account.displayName
- lbl_user_state.Content = If(Guid.TryParse(Account.userid, New Guid), "Premium", "Cracked")
+ lbl_Username.Text = Account.displayName
+ lbl_user_state.Text = If(Guid.TryParse(Account.userid, New Guid), Application.Current.FindResource("Premium").ToString, Application.Current.FindResource("Cracked").ToString)
lbl_user_state.Foreground = If(Guid.TryParse(Account.userid, New Guid), Brushes.Green, Brushes.Red)
Try
Dim WebRequest As HttpWebRequest = DirectCast(HttpWebRequest.Create("https://minotar.net/avatar/" & Account.displayName & "/100"), HttpWebRequest)
diff --git a/MinecraftLauncher/Windows/ProfileEditor.xaml b/MinecraftLauncher/Windows/ProfileEditor.xaml
index 8c2f0f5..b4988d5 100644
--- a/MinecraftLauncher/Windows/ProfileEditor.xaml
+++ b/MinecraftLauncher/Windows/ProfileEditor.xaml
@@ -4,9 +4,9 @@
xmlns:local="clr-namespace:McMetroLauncher"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Profile Editor"
- Height="559.187"
- Width="606.897"
+ Title="{DynamicResource ProfileEditor}"
+ Height="560"
+ Width="650"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen">
@@ -16,28 +16,66 @@
-
+
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -51,14 +89,31 @@
-
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
diff --git a/MinecraftLauncher/Windows/ProfileEditor.xaml.vb b/MinecraftLauncher/Windows/ProfileEditor.xaml.vb
index f116439..56f8b43 100644
--- a/MinecraftLauncher/Windows/ProfileEditor.xaml.vb
+++ b/MinecraftLauncher/Windows/ProfileEditor.xaml.vb
@@ -19,7 +19,7 @@ Public Class ProfileEditor
selectedid = DirectCast(cb_versions.SelectedItem, Versionslist.Version).id
End If
cb_versions.Items.Clear()
- cb_versions.Items.Add(New Versionslist.Version() With {.type = "Neueste Version"})
+ cb_versions.Items.Add(New Versionslist.Version() With {.type = Application.Current.FindResource("LatestVersion").ToString})
For Each item As Versionslist.Version In Versions.versions
If item.type = "release" Then
cb_versions.Items.Add(item)
@@ -111,7 +111,6 @@ Public Class ProfileEditor
tb_res_width.Text = "854"
tb_java_executable.Text = MainWindow.Startcmd(Await Profiles.FromName(loadedprofile))
tb_java_arguments.Text = "-Xmx1G"
-
End Function
Private Sub tb_res_PreviewTextInput(ByVal sender As System.Object, ByVal e As System.Windows.Input.TextCompositionEventArgs) Handles tb_res_height.PreviewTextInput, tb_res_width.PreviewTextInput
@@ -136,10 +135,9 @@ Public Class ProfileEditor
Private Async Sub btn_save_Click(sender As Object, e As RoutedEventArgs) Handles btn_save.Click
If tb_profile_name.Text = Nothing Then
- Await Me.ShowMessageAsync("Namen eingeben", "Geben Sie bitte einen Profil Namen ein!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("MissingProfileName").ToString, Application.Current.FindResource("EnterProfileName").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
Exit Sub
Else
-
Dim name As String = tb_profile_name.Text
Dim gameDir As String = Nothing
Dim lastVersionId As String = Nothing
@@ -169,7 +167,7 @@ Public Class ProfileEditor
End If
If cb_resolution.IsChecked = True Then
If tb_res_height.Text = Nothing OrElse tb_res_width.Text = Nothing Then
- Await Me.ShowMessageAsync("Fehler", "Bitte geben Sie eine gültige Auflösung ein!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, Application.Current.FindResource("EnterValidResolution").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("OK").ToString, .ColorScheme = MetroDialogColorScheme.Accented})
Exit Sub
End If
resolution_width = tb_res_width.Text
@@ -211,7 +209,7 @@ Public Class ProfileEditor
If Newprofile = True Then
If Profiles.List.Contains(tb_profile_name.Text) = True Then
- Await Me.ShowMessageAsync("Profil existiert bereits", "Dieses Profil existiert bereits!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, Application.Current.FindResource("ProfileExists").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
Else
Await Profiles.Add(prof)
End If
@@ -220,7 +218,7 @@ Public Class ProfileEditor
Dim oldprofile As Profiles.Profile = Await Profiles.FromName(loadedprofile)
prof.playerUUID = oldprofile.playerUUID
If Profiles.List.Contains(tb_profile_name.Text.ToString) AndAlso tb_profile_name.Text.ToString <> loadedprofile Then
- Await Me.ShowMessageAsync("Profil existiert bereits", "Dieses Profil existiert bereits!", MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
+ Await Me.ShowMessageAsync(Application.Current.FindResource("Error").ToString, Application.Current.FindResource("ProfileExists").ToString, MessageDialogStyle.Affirmative, New MetroDialogSettings() With {.AffirmativeButtonText = "Ok", .ColorScheme = MetroDialogColorScheme.Accented})
Else
Await Profiles.Edit(loadedprofile, prof)
End If
@@ -233,8 +231,8 @@ Public Class ProfileEditor
Private Sub btn_selectgamedir_Click(sender As Object, e As RoutedEventArgs) Handles btn_selectgamedir.Click
Dim fd As New VistaFolderBrowserDialog
- fd.Description = "Spiel Pfad auswählen"
- fd.RootFolder = Environment.SpecialFolder.MyComputer
+ fd.Description = Application.Current.FindResource("SelectGameDirectory").ToString
+ fd.RootFolder = Environment.SpecialFolder.ApplicationData
fd.SelectedPath = mcpfad.FullName
fd.ShowNewFolderButton = True
If fd.ShowDialog = True Then
@@ -244,14 +242,17 @@ Public Class ProfileEditor
Private Sub btn_selectjavadir_Click(sender As Object, e As RoutedEventArgs) Handles btn_selectjavadir.Click
Dim fd As New VistaOpenFileDialog
+ fd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
If tb_java_executable.Text = Nothing Then
fd.FileName = Nothing
Else
fd.FileName = tb_java_executable.Text
End If
fd.Multiselect = False
- fd.DefaultExt = ".exe"
- fd.Title = "Java Datei auswählen"
+ fd.CheckFileExists = True
+ fd.CheckPathExists = True
+ fd.Filter = String.Format("{0}|*.exe", Application.Current.FindResource("ExectuableFiles").ToString())
+ fd.Title = Application.Current.FindResource("OFDJavaPathTitle").ToString
If fd.ShowDialog = True Then
tb_java_executable.Text = fd.FileName
End If
@@ -273,12 +274,13 @@ Public Class ProfileEditor
End If
End Sub
- Private Async Sub cb_old_alpha_beta_PreviewMouseDown(sender As Object, e As RoutedEventArgs) Handles cb_old_beta.PreviewMouseDown, cb_old_alpha.PreviewMouseDown
+ Private Async Sub cb_old_alpha_beta_PreviewMouseDown(sender As Object, e As RoutedEventArgs) Handles cb_old_beta.PreviewMouseDown, cb_old_alpha.PreviewMouseDown, cb_snapshots.PreviewMouseDown
If Not DirectCast(sender, CheckBox).IsChecked Then
- If sender Is cb_old_beta OrElse sender Is cb_old_alpha Then
+ If sender Is cb_old_beta OrElse sender Is cb_old_alpha OrElse sender Is cb_snapshots Then
e.Handled = True
- Dim msgtext As String = "Diese Versionen sind sehr veraltet und können unstabil sein. Alle Fehler, Abstürze, fehlende Funktionen oder andere Defekte die du finden könnstest werden in diesen Versionen nicht mehr behoben." & Environment.NewLine & "Es wird stark empfohlen, dass du diese Versionen in einem separatem Verzeichniss spielst, um Datenverlust zu vermeiden. Wir sind nicht verantwortlich für den Schaden an deinen Daten!" & Environment.NewLine & Environment.NewLine & "Bist du dir sicher, dass du fortsetzen möchstest?"
- Dim result As MessageDialogResult = Await Me.ShowMessageAsync("Achtung", msgtext, MessageDialogStyle.AffirmativeAndNegativeAndSingleAuxiliary, New MetroDialogSettings() With {.AffirmativeButtonText = "Ja", .NegativeButtonText = "Nein", .FirstAuxiliaryButtonText = "Abbrechen", .ColorScheme = MetroDialogColorScheme.Accented, .AnimateShow = True, .AnimateHide = True})
+ Dim msgtext As String = Application.Current.FindResource("OldVersionsMessage").ToString
+ If sender Is cb_snapshots Then msgtext = Application.Current.FindResource("SnapshotVersionsMessage").ToString
+ Dim result As MessageDialogResult = Await Me.ShowMessageAsync(Application.Current.FindResource("Attention").ToString, msgtext, MessageDialogStyle.AffirmativeAndNegativeAndSingleAuxiliary, New MetroDialogSettings() With {.AffirmativeButtonText = Application.Current.FindResource("Yes").ToString, .NegativeButtonText = Application.Current.FindResource("No").ToString, .FirstAuxiliaryButtonText = Application.Current.FindResource("Cancel").ToString, .ColorScheme = MetroDialogColorScheme.Accented, .AnimateShow = True, .AnimateHide = True})
If result = MessageDialogResult.Affirmative Then
Get_Versions()
diff --git a/MinecraftLauncher/Windows/ServerEditor.xaml b/MinecraftLauncher/Windows/ServerEditor.xaml
index 560d19a..1d35c0c 100644
--- a/MinecraftLauncher/Windows/ServerEditor.xaml
+++ b/MinecraftLauncher/Windows/ServerEditor.xaml
@@ -3,17 +3,17 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
- Title="Server Editor"
+ Title="{DynamicResource ServerEditor}"
Height="194"
Width="426"
WindowStartupLocation="CenterScreen">
-
-
+
+
-
-
+
+
diff --git a/MinecraftLauncher/Windows/SplashScreen.xaml b/MinecraftLauncher/Windows/SplashScreen.xaml
index f6b81ce..b9d6ea0 100644
--- a/MinecraftLauncher/Windows/SplashScreen.xaml
+++ b/MinecraftLauncher/Windows/SplashScreen.xaml
@@ -3,7 +3,7 @@
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="McMetroLauncher"
+ Title="{DynamicResource McMetroLauncher}"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
ShowTitleBar="True"
@@ -15,13 +15,17 @@
ShowIconOnTitleBar="False">
-
-
+
+
-
+
+
+
+
+
diff --git a/MinecraftLauncher/Windows/SplashScreen.xaml.vb b/MinecraftLauncher/Windows/SplashScreen.xaml.vb
index abeb756..105db13 100644
--- a/MinecraftLauncher/Windows/SplashScreen.xaml.vb
+++ b/MinecraftLauncher/Windows/SplashScreen.xaml.vb
@@ -78,12 +78,12 @@ Public Class SplashScreen
' Build-Nr.
Dim sBuild As String = oAssembly.Version.Build.ToString()
- lbl_Version.Content = "Version " & sVersion
+ lbl_Version.Text = sVersion
Dim attributes As Object() = Assembly.GetExecutingAssembly().GetCustomAttributes(GetType(AssemblyCopyrightAttribute), False)
If attributes.Length > 0 Then
Dim CopyrightAttribute As AssemblyCopyrightAttribute = DirectCast(attributes(0), AssemblyCopyrightAttribute)
If CopyrightAttribute.Copyright <> "" Then
- lbl_copyright.Content = CopyrightAttribute.Copyright
+ lbl_copyright.Text = CopyrightAttribute.Copyright
End If
End If
@@ -121,13 +121,13 @@ Public Class SplashScreen
'StandartProfile schreiben
File.WriteAllText(launcher_profiles_json.FullName, standartprofile.ToString)
End If
- lbl_status.Content = "Prüfe auf Updates"
+ lbl_status.Content = Application.Current.FindResource("CheckingForUpdates").ToString
dlversion.DownloadStringAsync(New Uri(versionurl))
AddHandler dlversion.DownloadStringCompleted, AddressOf downloadchangelog
AddHandler dlversion.DownloadProgressChanged, AddressOf dlprogresschanged
Else
- lbl_statustitle.Content = "Fehler"
- lbl_status.Content = "Bitte überprüfe deine Internetverbindung!"
+ lbl_statustitle.Content = Application.Current.FindResource("Error").ToString
+ lbl_status.Content = Application.Current.FindResource("CheckInternetConnection").ToString & "!"
End If
End Sub
@@ -142,7 +142,7 @@ Public Class SplashScreen
MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace)
End Try
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
@@ -151,12 +151,12 @@ Public Class SplashScreen
Try
changelog = e.Result
If Check_Updates() = True Then
- lbl_status.Content = "Update gefunden"
+ lbl_status.Content = Application.Current.FindResource("Error").ToString
Dim updater As New Updater
updater.Show()
Me.Close()
Else
- lbl_status.Content = "Lade Versions-Liste herunter"
+ lbl_status.Content = Application.Current.FindResource("MsgDownloadingVersions").ToString
dlversionsjson.DownloadFileAsync(New Uri(Versionsurl), outputjsonversions.FullName)
AddHandler dlversionsjson.DownloadFileCompleted, AddressOf downloadmodsfile
AddHandler dlversionsjson.DownloadProgressChanged, AddressOf dlprogresschanged
@@ -165,7 +165,7 @@ Public Class SplashScreen
MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace)
End Try
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
@@ -173,7 +173,7 @@ Public Class SplashScreen
If e.Cancelled = False AndAlso e.Error Is Nothing Then
Try
Await Versions_Load()
- lbl_status.Content = "Lade Mod-Liste herunter"
+ lbl_status.Content = Application.Current.FindResource("MsgDownloadingModlist").ToString
dlmodsfile.DownloadFileAsync(New Uri(modfileurl), modsfile.FullName)
AddHandler dlmodsfile.DownloadFileCompleted, AddressOf downloadlegacyforgefile
AddHandler dlmodsfile.DownloadProgressChanged, AddressOf dlprogresschanged
@@ -181,7 +181,7 @@ Public Class SplashScreen
MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace)
End Try
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
@@ -197,7 +197,7 @@ Public Class SplashScreen
Downloadforgefile()
Else
Try
- lbl_status.Content = "Lade Forge-Build-Liste herunter"
+ lbl_status.Content = Application.Current.FindResource("MsgDownloadingForgeBuilds").ToString
dlforgefile.DownloadFileAsync(New Uri(Legacyforgeurl), Legacyforgefile.FullName)
AddHandler dlforgefile.DownloadFileCompleted, AddressOf downloadlegacyforgefilefinfished
AddHandler dlforgefile.DownloadProgressChanged, AddressOf dlprogresschanged
@@ -206,7 +206,7 @@ Public Class SplashScreen
End Try
End If
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
@@ -214,7 +214,7 @@ Public Class SplashScreen
If e.Cancelled = False AndAlso e.Error Is Nothing Then
Downloadforgefile()
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
@@ -230,7 +230,7 @@ Public Class SplashScreen
Private Async Sub DownloadsFinished(sender As Object, e As ComponentModel.AsyncCompletedEventArgs)
If e.Cancelled = False AndAlso e.Error Is Nothing Then
- lbl_status.Content = "Launcher startet..."
+ lbl_status.Content = Application.Current.FindResource("LauncherStarting").ToString
Await ServerList.Load
Await authenticationDatabase.Load()
Await Modifications.Load()
@@ -239,7 +239,7 @@ Public Class SplashScreen
Downloads.Load()
Await Start()
ElseIf e.Cancelled = False AndAlso e.Error IsNot Nothing Then
- MessageBox.Show("Ein Fehler ist aufgetreten: " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
+ MessageBox.Show(Application.Current.FindResource("Error").ToString & ": " & Environment.NewLine & e.Error.Message & Environment.NewLine & e.Error.StackTrace)
End If
End Sub
diff --git a/MinecraftLauncher/Windows/SubmitException.xaml b/MinecraftLauncher/Windows/SubmitException.xaml
index 7272f4e..b16e01d 100644
--- a/MinecraftLauncher/Windows/SubmitException.xaml
+++ b/MinecraftLauncher/Windows/SubmitException.xaml
@@ -19,7 +19,7 @@
-
+
diff --git a/MinecraftLauncher/Windows/Updater.xaml b/MinecraftLauncher/Windows/Updater.xaml
index c2416aa..0aee01c 100644
--- a/MinecraftLauncher/Windows/Updater.xaml
+++ b/MinecraftLauncher/Windows/Updater.xaml
@@ -5,7 +5,7 @@
xmlns:awe="clr-namespace:Awesomium.Windows.Controls;assembly=Awesomium.Windows.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="Updater" Height="550" Width="550" ResizeMode="CanResizeWithGrip" WindowStartupLocation="CenterScreen" ShowMinButton="False" ShowMaxRestoreButton="False" MinWidth="550" MinHeight="550">
+ Title="{DynamicResource UpdateAvailable}" Height="550" Width="550" ResizeMode="CanResizeWithGrip" WindowStartupLocation="CenterScreen" ShowMinButton="False" ShowMaxRestoreButton="False" MinWidth="550" MinHeight="550">
@@ -15,11 +15,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
diff --git a/MinecraftLauncher/Windows/Updater.xaml.vb b/MinecraftLauncher/Windows/Updater.xaml.vb
index 0184ade..c3a6639 100644
--- a/MinecraftLauncher/Windows/Updater.xaml.vb
+++ b/MinecraftLauncher/Windows/Updater.xaml.vb
@@ -19,8 +19,8 @@ Class Updater
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
- lblCurrentVersion.Content = "Aktuelle Version: " & AssemblyVersion
- lblNewestVersion.Content = "Neuste Version: " & onlineversion
+ lblCurrentVersion.Text = AssemblyVersion
+ lblNewVersion.Text = onlineversion
wc_Changelog.WebSession = WebCore.CreateWebSession(New WebPreferences() With {.CustomCSS = Scrollbarcss})
End Sub
@@ -33,16 +33,15 @@ Class Updater
' btn.Content = "Abbrechen"
'End If
- If wc.IsBusy Then
+ If UpdaterViewModel.Instance.installerdownloading Then
wc.CancelAsync()
- btn.Content = "Update Downloaden"
Else
wc = New WebClient
If IO.Directory.Exists(IO.Path.GetDirectoryName(Installer)) = False Then
IO.Directory.CreateDirectory(IO.Path.GetDirectoryName(Installer))
End If
wc.DownloadFileAsync(New Uri("http://patzleiner.net/download/McMetroLauncher.msi"), Installer)
- btn.Content = "Abbrechen"
+ UpdaterViewModel.Instance.installerdownloading = True
End If
End Sub
@@ -52,6 +51,7 @@ Class Updater
Process.Start(Installer)
Application.Current.Shutdown()
End If
+ UpdaterViewModel.Instance.installerdownloading = False
End Sub
Private Sub wc_DownloadProgressChanged(sender As Object, e As DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
diff --git a/MinecraftLauncher/resources/languages/mcml.de-de.xaml b/MinecraftLauncher/resources/languages/mcml.de-de.xaml
index b1b1d89..f887944 100644
--- a/MinecraftLauncher/resources/languages/mcml.de-de.xaml
+++ b/MinecraftLauncher/resources/languages/mcml.de-de.xaml
@@ -1,26 +1,151 @@

-
+
JaNeinOk
- Anwenden
- Suchen
+ Anwenden
+ Abbrechen
+ SuchenHH:mm:ss dd.MM.yyyySchließenHerunterladen
+ Herunterladen und InstallierenStartenSpielen
+ Fehler
+ Speichern
+ Ãœberspringen
+
+ Spieler
+ Spieler
+ Version
+ Minecraft Version
+ Datum
+
+ Website
+ Icon
+ Info
+ Aktualisieren
+ Hinzufügen
+
+ Warnung
+ Achtung
+ Gib einen Benutzernamen ein
+ Nur Buchstaben, Zahlen, Binde- und Unterstriche
+ Zeichen
+ Fehler beim laden
+
Konsole
- Spieler
- Server
+ Neuigkeiten
+ Tools
+ Mods
+ Server
+ InfosEinstellungen
+ Hilfe
+ Minecraft
+ Resourcenpackete
+
+
+ Neuigkeiten werden geladen
+ Benutzer wechseln
+
+
+ Version zu Profil hinzufügen
+ Profil Editor
+ Minecraft Forge
+ LiteLoader
+ McMetroLauncher
+ Server Editor
+
+
+ Launcher wird gestartet...
+ Bitte überprüfe deine Internetverbindung
+ Lade Versions-Liste herunter
+ Lade Mod-Liste herunter
+ Lade Forge-Build-Liste herunter
+
+
+ Profil existiert bereits
+ Neues Profil erstellen
+ Zu bestehendem Profil hinzufügen
+ Neueste Version
+ Profilname fehlt
+ Gib bitte einen Profilnamen ein
+ Bitte gib eine gültige Auflösung ein
+ Spiel Pfad auswählen
+ Spiel Pfad öffnen
+ Bist du dir sicher, dass du Entwickler Versionen aktivieren willst?
Es ist nicht garantiert, dass sie stabil sind und können möglicherweise deine Welt beschädigen.
Es wird empfohlen, diese in einem separaten Verzeichnis auszuführen oder regelmäßige Sicherungen auszuführen.
Sind Sie sicher, dass Sie fortfahren möchten?
+ Diese Versionen sind sehr veraltet und können unstabil sein. Alle Fehler, Abstürze, fehlende Funktionen oder andere Defekte die du finden könnstest werden in diesen Versionen nicht mehr behoben.
Es wird stark empfohlen, dass du diese Versionen in einem separatem Verzeichnis spielst, um Datenverlust zu vermeiden. Wir sind nicht verantwortlich für eventuelle Schäden an deinen Daten!
Bist du dir sicher, dass du fortsetzen möchtest?
+ Profil Infos
+ Profil Name
+ Spiel Pfad
+ Auflösung
+ Aktiviere experimentelle Entwickler Versionen ("snapshots")
+ Erlaube die Benutzung von alten "Beta" Minecraft Versionen (Von 2010-2011)
+ Erlaube die Benutzung von alten "alpha" Minecraft Versionen (Von 2010)
+ Java Einstellungen (Erweitert)
+ JVM Argumente
+ Java Datei
+ Profil speichern
+
+ Neu
+ Bearbeiten
+ Löschen
+
+
+ Name
+ Adresse
+ Adresse verstecken
+ Texturen erlauben
+
+
+ Mit bestehendem Benutzer einloggen:
+ Mit neuem Account einloggen:
+ Email Adresse oder Benutzername:
+ Benutzername:
+ Passwort:
+ Registrieren
+ Anmelden
+ Abmelden
+ Online Modus (Premium Account)
+ Was soll ich nehmen?
+ Passwort vergessen?
+ Premium
+ Cracked
+
+ Bitte wähle eine Forge Version aus
+ Manuell installieren (Installer)
+ Automatisch installieren
+ Forge wird installiert
+ Bitte warten
+ Version wird heruntergeladen
+ Version wird installiert
+ Bitte warten, erforderliche Libraries werden heruntergeladen
+ Library wird heruntergeladen
+ Fehler beim herunterladen
+ Fehler beim entpacken
+ Library wird entpackt
+ Forge Versionen
+ Anleitung (Manuelle Installation)
+ In die Zwischenablage kopieren
+ Nachdem Forge heruntergeladen wurde, öffnet sich ein Fenster. Wähle dort "Install Client" aus und wähle für den Minecraft Ordner folgenden Pfad aus:
+ Klicke anschließend auf "OK" und es wird Minecraft Forge installiert. Nachdem es einige Dateien heruntergeladen hat und fertig installiert hat, erscheint eine Meldung, dass Forge erfolgreich installiert wurde. Nun wurde ein neues Profil namens "Forge" hinzugefügt und du kannst nun unter dem Tab "Mods" Modifikationen installieren. Du kannst Forge auch einem anderem Profil zuordnen, indem du einfach die Version im Profileeditor änderst.
+
+
+ Bitte wähle eine LiteLoader Version aus
+ LiteLoader Versionen
+ Anleitung
+ Nachdem LiteLoader heruntergeladen wurde, öffnet sich ein Fenster. Wähle dort "Install LiteLoader" aus und wähle für den Minecraft Ordner folgenden Pfad aus:
+ Falls du LiteLoader mit Minecraft Forge Installieren willst, wähle eine Forge Version bei "Extend from:" aus (Dafür musst du zuerst Forge installieren). Anschließend kannst du den Profilnamen ändern. Klicke dann auf "OK" und es wird Minecraft Forge installiert. Nachdem es einige Dateien heruntergeladen hat und fertig installiert hat, erscheint eine Meldung, dass LiteLoader erfolgreich installiert wurde. Ein neues Profil wurde hinzugefügt und du kannst nun unter dem Tab "Mods" Modifikationen installieren. Du kannst LiteLoader auch einem anderem Profil zuordnen, indem du einfach die Version im Profileeditor änderst.
+
McMetroLauncher Fehler
- Minecraft Server Launcher hat einen Fehler festgestellt und muss beendet werden. Wir entschuldigen uns für die Unannehmlichkeiten
+ McMetroLauncher hat einen Fehler festgestellt und muss beendet werden. Wir entschuldigen uns für die UnannehmlichkeitenWir haben einen Fehlerbericht erstellt, welchen du uns senden kannst. Wir werden diesen Fehler als vertraulich und anonym behandeln.Um uns zu helfen, die Ursache des Fehlers zu diagnostizieren und die Anwendung zu verbessern, kannst du hier eine Anmerkung hinterlassen (Optional):Fehler
@@ -33,19 +158,100 @@
Ausführbare Dateien
+ Updates werden gesuchtAktualisierungen verfügbarAktuelle VersionNeue VersionAktualisieren
+ ÄnderungsprotokollÄnderungen in der Version {0} (Veröffentlicht am: {1})
-
+
+ Forge installieren
+ LiteLoader installierenMit den Technic Launcher kannst du viele bekannte Modpacks spielen wie z.B. Tekkit, Hexxit, Volt.... Auserdem kannst du eigene Modpacks hinzufügen und spielen. Diese findest du auf http://technicpack.net.LiteLoader ist ein ModLoader der dafür entwickelt wurde, grundlegende Loader Funktionalitaten für Mods anzubieten, die nicht den Spielmechanismus ändern müssen. Er wurde dafür entwickelt, neben Minecraft Forge zu laufen und zwischen LiteLoader und Forge Mods treten keine Konflikte auf.
- Minecraft Forge ist ein ModLoader mit dem ihr einfacher Mods installieren könnt. Er hilft dabei, dass die Mods untereinander kompatibel sind. Die meisten Mods basieren auf Forge. Du kannst Mods für Forge unter dem Tab "Mods" installieren.
- Mit den Feed The Beast Launcher kannst du viele bekannte Modpacks spielen wie z.B. Unleashed, Unhinged, FTB Ultimate, Direwolf 20... die sehr viele Mods beinhalten. Mehr Infos findest du auf http://feed-the-beast.com.
+ Minecraft Forge ist ein ModLoader mit welchem du einfacher Mods installieren könnt. Er hilft dabei, dass die Mods untereinander kompatibel sind. Die meisten Mods basieren auf Forge. Du kannst Mods für Forge unter dem Tab "Mods" installieren.
+ Mit den Feed The Beast Launcher kannst du viele bekannte Modpacks spielen wie z.B. Unleashed, Unhinged, FTB Ultimate, Direwolf 20.... Mehr Informationen findest du auf http://feed-the-beast.com.
+
+
+ Autoren
+ Mods installieren in
+ Standard
+ Website besuchen
+ Video ansehen
+ Installieren
+ SHIFT oder STRG für Mehrfachauswahl
+
+
+ Server, dessen Version älter als 1.7 ist, werden als "Offline" angezeigt, Rechtsklick für mehr Optionen
+ Server Adresse kopieren
+ Direct Join (Manuell)
+ Direct Join (Auto)
+ Online
+ Offline
+ Du hast noch keine gespeicherten Server
+ Direct Join
+ Tritt nach dem Spielstart automatisch dem festgelegten Server beiSprache
+ Allgemein
+
+
+ Arbeitspeicher
+ CPU
+ Service Status
+ GitHub
+ Theme
+ Accent
+
+
+ Lade Resourcen-Liste herunter
+ Lade Resourcen herunter
+ Versuch
+ Resource wird heruntergeladen
+ Der Download wurde aufgrund zu vieler Fehlversuche abgebrochen
+ Resource erfolgreich heruntergeladen und Hash verglichen
+ Virtuelle Resourcen werden erstellt in {0}
+ {0}% - {1} {2} von {3} {2} heruntergeladen
+ Prüfe, ob die Version aktuell ist
+ Lade Minecraft Version {0} herunter
+ Fehler beim herunterladen von Minecraft Version {0}
+ Diese Minecraft Version wird vom Launcher noch nicht vollständig unterstützt. Es könnte zu Fehlern kommen!
+ Library wird von den Forge Servern heruntergeladen
+ Minecraft Forge Library wird automatisch heruntergeladen
+ Library existiert bereits
+ Library Couldn't match checksumkonnte nicht auf Hash überprüft werden und wird übersprungen, in der Annahme, dass die lokale Datei gut ist
+ Library konnte nicht heruntergeladen werden
+ Falls du gerade Forge gestartet hast, installiere es erneut
+ Ein Fehler ist beim Löschen der Library aufgetreten
+ Fehler beim entpacken
+ Library erfolgreich heruntergeladen
+ Library erfolgreich heruntergeladen und Hash verglichen
+ Natives werden entpackt
+ Fehler beim entpacken der natives
+ Fehler beim entpacken der natives. Wahrscheinlich wurde die erforderliche Library nicht heruntergeladen
+ Startinfos werden ausgelesen
+ Starte Minecraft
+ Java {0} Bit
+ Minecraft wird bereits gestartet
+ Wähle bitte ein Profil aus
+ {0}.jar und/oder {1}.json existiert nicht
+ Ein Fehler ist aufgetreten. Bitte versuche, im ProfileEditor bei den "JVM Argumenten" folgendes hinzuzufügen: "-Dfml.ignoreInvalidMinecraftCertificates=true"
+ Das letzte Profil kann nicht gelöscht werden
+ Vorraussetzung
+ Typ
+ Mods Ordner auswählen
+ Mod konnte nicht gelöscht werden: {0}
Falls der Mod in Minecraft geöffnet ist, schließe zuerst Minecraft
+ Mods werden installiert
+ Abgebrochen
+ Mods erfolgreich Installiert
+ Fehler beim Installieren der Mods
+ Bist du dir sicher, dass du den Server "{0}" entgültig löschen willst?
+ Server löschen
+ Feed the Beast wird heruntergeladen
+ Technic Launcher wird heruntergeladen
+ Anmelden mit access token
diff --git a/MinecraftLauncher/resources/languages/mcml.en-us.xaml b/MinecraftLauncher/resources/languages/mcml.en-us.xaml
index 70a6933..3bd1a2f 100644
--- a/MinecraftLauncher/resources/languages/mcml.en-us.xaml
+++ b/MinecraftLauncher/resources/languages/mcml.en-us.xaml
@@ -1,26 +1,151 @@

-
+
YesNoOk
- Apply
- search
+ Apply
+ Cancel
+ SearchHH:mm:ss tt mm/dd/yyyyCloseDownload
+ Download and installStartPlay
+ Error
+ Save
+ Skip
+ Player
+ Players
+ Version
+ Minecraft version
+ Date
+
+ Website
+ Icon
+ Info
+ Refresh
+ Add
+
+
+ Warnung
+ Attention
+ Type your Username
+ May only contain letters, numbers, dashes and underscores
+ Characters
+ Error loading
+
ConsoleNewsToolsMods
+ Servers
+ Infos
+ Settings
+ Hilfe
+ Minecraft
+ Resourcepacks
+
+
+ Loading News
+ Switch User
+
+
+ Add version to profile
+ Profile Editor
+ Minecraft Forge
+ LiteLoader
+ McMetroLauncher
+ Server Editor
+
+
+ Launcher is starting...
+ Please check your Internet connection
+ Downloading Versionslist
+ Downloading Modlist
+ Downloading Forge Buildlist
+
+
+ Profil already exists
+ Create new profile
+ Add to existing profile
+ Latest Version
+ Profile name is missing
+ Please enter a profil name
+ Please enter a valid resolution
+ Select Game Directory
+ Open Game Directory
+ Are you sure you want to enable development builds?
They are not guaranteed to be stable and may corrupt your world.
You are advised to run this in a separate directory or run regular backups.
Are you sure you want to continue?
+ These versions are very out of date and may be unstable. Any bugs, crashes, missing features or other nasties you may find will never be fixed in these versions.
It is strongly recommended you play these in separate directories to avoid corruption.
We are not responsible for the damage to your nostalgia or your save files!
Are you sure you want to continue?
+ Profile Infos
+ Profile Name
+ Game Directory
+ Resolution
+ Enable experimental development versions ("snapshots")
+ Allow use of old "Beta" Minecraft versions (From 2010-2011)
+ Allow use of old "Alpha" Minecraft versions (From 2010)
+ Java Settings (Advanced)
+ JVM Arguments
+ Java Executable
+ Save Profile
+
+ New
+ Edit
+ Delete
+
+
+ Name
+ Address
+ Hide Address
+ Allow Textures
+
+
+ Login with existing User:
+ Login with a new Account:
+ Email Address or Username:
+ Username:
+ Password:
+ Register
+ Login
+ Logout
+ Online Mode (Premium Account)
+ Which do I use?
+ Forgot Password?
+ Premium
+ Cracked
+
+
+ Please choose a Forge version
+ Install manually (Installer)
+ Install automatically
+ Installing Forge
+ Please wait
+ Downloading version
+ Installing version
+ Please wait, downloading required libraries
+ Downloading library
+ Error downloading
+ Error unpacking
+ Unpacking library
+ Forge versions
+ Instructions (Manual installation)
+ Copy to clipboard
+ After Forge was downloaded, a window opens. Choose "Install Client" and select the following path for the Minecraft directory:
+ After that click "OK" and Minecraft Forge is installing. After it downloaded a few files and finished installing, a message appears, that Minecraft Forge has been successfully installed. A new profil named "Forge" has been created and you can now install Mods from the Tab "Mods". You can also select Forge from another profile in the Profile Editor.
+
+
+ Please choose a LiteLoader version
+ LiteLoader versions
+ Instructions
+ After LiteLoader was downloaded, a window opens. Choose "Install LiteLoader" and select the following path for the Minecraft directory:
+ If you want to chain LiteLoader to Minecraft Forge, select a Forge Version from the "Extend from:" dropdown menu (You have to install Forge first). After that you can change the profile name .Then click "OK" and LiteLoader is installing. After it downloaded a few files and finished installing, a message appears, that LiteLoader has been successfully installed. The new profil has been created and you can now install Mods from the Tab "Mods". You can also select LiteLoader from another profile in the Profile Editor.McMetroLauncher Error
- Minecraft Server Launcher has encountered a problem and needs to close. We are sorry for the inconvenience.
+ McMetroLauncher has encountered a problem and needs to close. We are sorry for the inconvenience.We have created an error report that you can send to us. We will treat this error as confidential and anonymous.To help us diagnose the cause of this error and improve the software, you can write down a note (optional):Error
@@ -28,24 +153,105 @@
Java path not found
- Unfortunately we couldn't find the path to Java. Please select the "java.exe" or install java if it isn't already installed.
+ Unfortunately we couldn't find the path to Java. Please select the "java.exe" or install Java if it isn't already installed.Please select the "java.exe"Exectuable Files
+ Checking for UpdatesUpdates availableCurrent versionNew versionUpdate
+ ChangelogChanges in version {0} (Published on: {1})
-
- Mit den Technic Launcher kannst du viele bekannte Modpacks spielen wie z.B. Tekkit, Hexxit, Volt.... Auserdem kannst du eigene Modpacks hinzufügen und spielen. Diese findest du auf http://technicpack.net.
- LiteLoader ist ein ModLoader der dafür entwickelt wurde, grundlegende Loader Funktionalitaten für Mods anzubieten, die nicht den Spielmechanismus ändern müssen. Er wurde dafür entwickelt, neben Minecraft Forge zu laufen und zwischen LiteLoader und Forge Mods treten keine Konflikte auf.
- Minecraft Forge ist ein ModLoader mit dem ihr einfacher Mods installieren könnt. Er hilft dabei, dass die Mods untereinander kompatibel sind. Die meisten Mods basieren auf Forge. Du kannst Mods für Forge unter dem Tab "Mods" installieren.
- Mit den Feed The Beast Launcher kannst du viele bekannte Modpacks spielen wie z.B. Unleashed, Unhinged, FTB Ultimate, Direwolf 20... die sehr viele Mods beinhalten. Mehr Infos findest du auf http://feed-the-beast.com.
+
+ Install Forge
+ Install LiteLoader
+ Using the Technic Launcher you can play lots of well known modpacks such as Tekkit, Hexxit, Volt.... You can add and play your own modpacks as well. You can find them on http://technicpack.net.
+ LiteLoader is a lightweight mod bootstrap designed to provide very basic loader functionality for mods which don't need to modify game mechanics. It is designed to run alongside Minecraft Forge and Forge Mod Loader (FML) and LiteLoader mods will virtually never conflict with Forge mods.
+ Minecraft Forge is a ModLoader that eases the installation of mods. It assist in compatibility between mods. Most mods are based on Minecraft Forge. You can download and install Mods for Forge from the "Mods" Tab.
+ With the Feed The Beast Launcher you can play plenty of popular modpacks like Unleashed, Unhinged, FTB Ultimate, Direwolf 20.... See more on http://feed-the-beast.com.
+
+
+ Authors
+ Install mods in
+ Default
+ Open the Website
+ Watch the Video
+ Install
+ SHIFT oder CTRL for multiselection
+
+
+ Servers, whose version is older than 1.7 are displayed as "Offline", right click for more options
+ Copy server address
+ Direct Join (Manual)
+ Direct Join (Auto)
+ Online
+ Offline
+ You don't have any saved servers
+ Direct Join
+ Automatically joins the specified server after the game startsLanguage
+ General
+
+
+ Ram
+ CPU
+ Service Statuses
+ GitHub
+ Theme
+ Accent
+
+ Downloading resources-list
+ Downloading resources
+ Try
+ Downloading resource
+ Download aborted due to too many failed attempts
+ Resource successfully downloaded and hash matched
+ Reconstructing virtual assets folder at {0}
+ {0}% - {1} {2} of {3} {2} downloaded
+ Getting syncinfos for selected version
+ Downloading Minecraft version {0}
+ An error occured while downloading Minecraft version {0}
+ This Minecraft version is not fully supported by the launcher yet. Errors could occure!
+ Downloading Library from the Minecraft Forge servers
+ Automatically downloading the Minecraft Forge library
+ Library already exists
+ Couldn't match checksum, but have local file, assuming it's good
+ Couldn't download Library
+ If you just started Forge, please reinstall it
+ An error occured while deleting library
+ An error occured while unzipping
+ Library successfully downloaded
+ Downloaded Library successfully and checksum matched
+ Unzipping natives
+ An error occured while unzipping natives
+ An error occured while unzipping natives. Was the needed library downloaded successfully?
+ Getting Startinfos
+ Starting Minecraft
+ Java {0} Bit
+ Minecraft is already starting
+ Please select a profile
+ {0}.jar and/or {1}.json does not exist
+ An error occured. Please try to add following to the "JVM Arguments" in the profile editor: "-Dfml.ignoreInvalidMinecraftCertificates=true"
+ Couldn't delete last profile
+ Prerequisite
+ Type
+ Select mods folder
+ Couldn't delete mod: {0}
If the mod is currently used by Minecraft, close Minecraft first
+ Installing mods
+ Canceled
+ Mods were successfully installed
+ An error occured while installing mods
+ Are you sure you want to delete the server "{0}"?
+ Delete server
+ Downloading Feed the Beast
+ Downloading Technic Launcher
+ Logging in with access token
+