Extract static strings to i18n system

This commit is contained in:
Jack Baron 2020-02-02 04:00:52 +00:00
parent fe158c7072
commit ce2fda7595
No known key found for this signature in database
GPG key ID: CD10BCEEC646C064
7 changed files with 251 additions and 124 deletions

View file

@ -1,10 +1,146 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:ModAssistant">
<sys:String x:Key="ResourceDictionaryName">i18n:en-US</sys:String>
<sys:String x:Key="WindowTitle">ModAssistant</sys:String>
<!-- Main Window -->
<sys:String x:Key="MainWindow:WindowTitle">ModAssistant</sys:String>
<sys:String x:Key="MainWindow:IntroButton">Intro</sys:String>
<sys:String x:Key="MainWindow:ModsButton">Mods</sys:String>
<sys:String x:Key="MainWindow:AboutButton">About</sys:String>
<sys:String x:Key="MainWindow:OptionsButton">Options</sys:String>
<sys:String x:Key="MainWindow:GameVersionLabel">Game Version</sys:String>
<sys:String x:Key="MainWindow:VersionLabel">Version</sys:String>
<sys:String x:Key="MainWindow:ModInfoButton">Mod Info</sys:String>
<sys:String x:Key="MainWindow:InstallButtonTop">Install</sys:String>
<sys:String x:Key="MainWindow:InstallButtonBottom">or Update</sys:String>
<sys:String x:Key="AgreeButton">I Agree</sys:String>
<sys:String x:Key="DisagreeButton">Disagree</sys:String>
<!-- Intro Page -->
<sys:String x:Key="Intro:Title">Intro</sys:String>
<sys:String x:Key="Intro:PageTitle">Welcome to Mod Assistant</sys:String>
<sys:String x:Key="Intro:Terms:Header">Please read this page entirely and carefully</sys:String>
<Span x:Key="Intro:Terms:Line1">
By using this program attest to have read and agree to the following terms:
</Span>
<Span x:Key="Intro:Terms:Line2">
Beat Saber
<Bold>does not</Bold> natively support mods. This means:
</Span>
<Span x:Key="Intro:Terms:Term1">
Mods
<Bold>will break</Bold> every update. This is normal, and
<Bold>not</Bold> Beat Games' fault.
</Span>
<Span x:Key="Intro:Terms:Term2">
Mods
<Bold>will</Bold> cause bugs and performance issues. This is
<Bold>not</Bold> Beat Games' fault.
</Span>
<Span x:Key="Intro:Terms:Term3">
Mods are made for
<Bold>free</Bold> by people in their
<Bold>free time.</Bold> Please be patient and understanding.
</Span>
<Span x:Key="Intro:ReviewsBeatGamesFault">
<Bold>DO NOT</Bold> leave negative reviews because mods broke. This is
<Bold>not</Bold> Beat Games' fault.
<LineBreak/> They are not trying to kill mods.
</Span>
<Span x:Key="Intro:ReviewsRustySpoon">
If I keep seeing people leave negative reviews
<Italic>because</Italic> mods broke,
<LineBreak/>
<Bold>I will personally kill mods with a rusty spoon</Bold>
</Span>
<Span x:Key="Intro:WikiGuide">
Please read the Beginners Guide on the
<Hyperlink NavigateUri="https://bsmg.wiki/beginners-guide" local:HyperlinkExtensions.IsExternal="True">
Wiki
</Hyperlink>.
</Span>
<sys:String x:Key="Intro:AgreeButton">I Agree</sys:String>
<sys:String x:Key="Intro:DisagreeButton">Disagree</sys:String>
<!-- Mods Page -->
<sys:String x:Key="Mods:Title">Mods</sys:String>
<sys:String x:Key="Mods:Header:Name">Name</sys:String>
<sys:String x:Key="Mods:Header:Installed">Installed</sys:String>
<sys:String x:Key="Mods:Header:Latest">Latest</sys:String>
<sys:String x:Key="Mods:Header:Description">Description</sys:String>
<sys:String x:Key="Mods:Header:Uninstall">Uninstall</sys:String>
<!-- About Page -->
<sys:String x:Key="About:Title">About</sys:String>
<sys:String x:Key="About:PageTitle">About Mod Assistant</sys:String>
<sys:String x:Key="About:List:Header">I'm Assistant, and I made Mod Assistant for mod assistance, with a few principles in mind:</sys:String>
<sys:String x:Key="About:List:Item1">Simplicity</sys:String>
<sys:String x:Key="About:List:Item2">Portability</sys:String>
<sys:String x:Key="About:List:Item3">Single Executable</sys:String>
<sys:String x:Key="About:List:Item4">Responsible use</sys:String>
<Span x:Key="About:SupportAssistant">
If you enjoy this program and would like to support me, please visit my
<Hyperlink NavigateUri="https://bs.assistant.moe/Donate/" local:HyperlinkExtensions.IsExternal="True">
donation page
</Hyperlink>
or my
<Hyperlink NavigateUri="https://www.patreon.com/AssistantMoe" local:HyperlinkExtensions.IsExternal="True">
Patreon
</Hyperlink>
</Span>
<sys:String x:Key="About:SpecialThanks">Special Thanks ♥</sys:String>
<sys:String x:Key="About:Donate">Donate</sys:String>
<sys:String x:Key="About:HeadpatsButton">Headpats</sys:String>
<sys:String x:Key="About:HugsButton">Hugs</sys:String>
<!-- Options Page -->
<sys:String x:Key="Options:Title">Options</sys:String>
<sys:String x:Key="Options:PageTitle">Settings</sys:String>
<sys:String x:Key="Options:InstalFolder">Install Folder</sys:String>
<sys:String x:Key="Options:SelectFolderButton">Select Folder</sys:String>
<sys:String x:Key="Options:OpenFolderButton">Open Folder</sys:String>
<sys:String x:Key="Options:SaveSelectedMods">Save Selected Mods</sys:String>
<sys:String x:Key="Options:CheckInstalledMods">Check Installed Mods</sys:String>
<sys:String x:Key="Options:SelectInstalledMods">Select Installed Mods</sys:String>
<sys:String x:Key="Options:EnableOneClickInstalls">Enable OneClick™ Installs</sys:String>
<sys:String x:Key="Options:BeatSaver">BeatSaver</sys:String>
<sys:String x:Key="Options:ModelSaber">ModelSaber</sys:String>
<sys:String x:Key="Options:GameType">Game Type</sys:String>
<sys:String x:Key="Options:GameType:Steam">Steam</sys:String>
<sys:String x:Key="Options:GameType:Oculus">Oculus</sys:String>
<sys:String x:Key="Options:Diagnostics">Diagnostics</sys:String>
<sys:String x:Key="Options:OpenLogsButton">Open Logs</sys:String>
<sys:String x:Key="Options:UninstallBSIPAButton">Uninstall BSIPA</sys:String>
<sys:String x:Key="Options:RemoveAllModsButton">Remove All Mods</sys:String>
<!-- Invalid Page -->
<sys:String x:Key="Invalid:Title">Invalid</sys:String>
<sys:String x:Key="Invalid:PageTitle">Invalid Installation Detected</sys:String>
<sys:String x:Key="Invalid:PageSubtitle">Your game installation is corrupted or otherwise invalid</sys:String>
<sys:String x:Key="Invalid:List:Header">This can happen if your copy of the game is pirated, or if you copied a pirated copy over your legit install</sys:String>
<Span x:Key="Invalid:List:Line1">
If your copy of the game is pirated,
<Bold>please purchase the game
<Hyperlink NavigateUri="https://beatgames.com/" local:HyperlinkExtensions.IsExternal="True">
HERE
</Hyperlink>.
</Bold>
</Span>
<Span x:Key="Invalid:List:Line2">
If your copy of the game is
<Bold>not</Bold> pirated, please
<Hyperlink NavigateUri="https://bsmg.wiki/support#clean-installation" local:HyperlinkExtensions.IsExternal="True">
do a clean install
</Hyperlink>.
</Span>
<Span x:Key="Invalid:List:Line3">
If those don't help, ask for support in the
<Span Foreground="Blue">#support</Span> channel in
<Hyperlink NavigateUri="https://discord.gg/beatsabermods" local:HyperlinkExtensions.IsExternal="True">
BSMG
</Hyperlink>.
</Span>
<sys:String x:Key="Invalid:BoughtGame1">If you used to have a pirated version but have since bought the game</sys:String>
<sys:String x:Key="Invalid:SelectFolderButton">Select Folder</sys:String>
<sys:String x:Key="Invalid:BoughtGame2">You will need to restart Mod Assistant after changing to the legit install</sys:String>
</ResourceDictionary>

View file

@ -6,7 +6,7 @@
xmlns:local="clr-namespace:ModAssistant"
mc:Ignorable="d"
Icon="Resources/icon.ico"
Title="{DynamicResource WindowTitle}" Width="1280" Height="720"
Title="{DynamicResource MainWindow:WindowTitle}" Width="1280" Height="720"
UIElement.PreviewMouseDown="Window_PreviewMouseDown">
<Grid Margin="10">
<Grid.RowDefinitions>
@ -31,41 +31,43 @@
<Button Name="IntroButton" Grid.Row="0" Height="60" Margin="0,0,10,5" Background="white" Click="IntroButton_Click">
<StackPanel Margin="0,8,0,0">
<Image Height="30" Source="Resources/Intro.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom">Intro</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:AboutButton}" />
</StackPanel>
</Button>
<Button IsEnabled="false" Name="ModsButton" Grid.Row="1" Height="60" Margin="0,5,10,5" Background="white" Click="ModsButton_Click">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="Resources/Mods.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom">Mods</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModsButton}" />
</StackPanel>
</Button>
<Button Name="AboutButton" Grid.Row="2" Height="60" Margin="0,5,10,5" Background="white" Click="AboutButton_Click">
<StackPanel Margin="0,6,0,0">
<Image Height="30" Source="Resources/About.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom">About</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:AboutButton}" />
</StackPanel>
</Button>
<Button Name="OptionsButton" Grid.Row="3" Height="60" Margin="0,5,10,5" Background="white" Click="OptionsButton_Click">
<StackPanel Margin="0,5,0,0">
<Image Height="30" Source="Resources/Options.png" VerticalAlignment="Bottom"></Image>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom">Options</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" Margin="0,0,0,5" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:OptionsButton}" />
</StackPanel>
</Button>
<StackPanel Name="GameVersions" Grid.Row="5" VerticalAlignment="Bottom">
<TextBlock Text="Game Version:" FontSize="10"/>
<ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged">
<TextBlock FontSize="10">
<TextBlock Text="{DynamicResource MainWindow:GameVersionLabel}" />:
</TextBlock>
<ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged">
</ComboBox>
</StackPanel>
</Grid>
<StackPanel Grid.Row="1" VerticalAlignment="Center">
<TextBlock Text="Version" HorizontalAlignment="Center"/>
<TextBlock Text="{DynamicResource MainWindow:VersionLabel}" HorizontalAlignment="Center"/>
<TextBlock Name="VersionText" HorizontalAlignment="Center"/>
</StackPanel>
@ -81,21 +83,15 @@
<TextBlock Name="MainTextBlock" Padding="5" Height="40" VerticalAlignment="Bottom" Background="LightGray" FontSize="20" />
<Button Grid.Column="1" Name="InfoButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InfoButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom">
Mod Info
</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:ModInfoButton}" />
</StackPanel>
</Button>
<Button Grid.Column="2" Name="InstallButton" IsEnabled="False" Height="40" Width="100" HorizontalAlignment="Right" Margin="0,10,0,0" Click="InstallButton_Click">
<StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom">
Install
</TextBlock>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom">
or Update
</TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonTop}" />
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Bottom" Text="{DynamicResource MainWindow:InstallButtonBottom}" />
</StackPanel>
</Button>
</Grid>
</Grid>

View file

@ -1,4 +1,4 @@
<Page x:Class="ModAssistant.Pages.About"
<Page x:Class="ModAssistant.Pages.About"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
@ -8,7 +8,7 @@
xmlns:local="clr-namespace:ModAssistant"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="About">
Title="{DynamicResource About:Title}">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
@ -27,30 +27,30 @@
</Grid.RowDefinitions>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="24" Margin="0">About Mod Assistant</TextBlock>
<TextBlock Grid.Row="1" TextWrapping="Wrap" Margin="0,5" FontSize="16" >
I'm Assistant, and I made Mod Assistant for mod assistance, with a few principles in mind:
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="24" Margin="0" Text="{DynamicResource About:PageTitle}" />
<TextBlock Grid.Row="1" TextWrapping="Wrap" Margin="0,5" FontSize="16" Text="{DynamicResource About:List:Header}" >
</TextBlock>
<TextBlock Grid.Row="2" Margin="15,5" FontSize="16">
• <TextBlock Text="{DynamicResource About:List:Item1}" />
</TextBlock>
<TextBlock Grid.Row="3" Margin="15,5" FontSize="16">
• <TextBlock Text="{DynamicResource About:List:Item2}" />
</TextBlock>
<TextBlock Grid.Row="4" Margin="15,5" FontSize="16">
• <TextBlock Text="{DynamicResource About:List:Item3}" />
</TextBlock>
<TextBlock Grid.Row="5" Margin="15,5" FontSize="16">
• <TextBlock Text="{DynamicResource About:List:Item4}" />
</TextBlock>
<TextBlock Grid.Row="2" Margin="15,5" FontSize="16" Text="• Simplicty" />
<TextBlock Grid.Row="3" Margin="15,5" FontSize="16" Text="• Portability" />
<TextBlock Grid.Row="4" Margin="15,5" FontSize="16" Text="• Single Executable" />
<TextBlock Grid.Row="5" Margin="15,5" FontSize="16" Text="• Responsible use" />
<TextBlock TextWrapping="Wrap" Grid.Row="6" Margin="30,5,5,5" FontSize="16">
If you enjoy this program and would like to support me, please visit my
<Hyperlink NavigateUri="https://bs.assistant.moe/Donate/" RequestNavigate="Hyperlink_RequestNavigate">
donation page
</Hyperlink>
or my
<Hyperlink NavigateUri="https://www.patreon.com/AssistantMoe" RequestNavigate="Hyperlink_RequestNavigate">
Patreon
</Hyperlink>
<StaticResource ResourceKey="About:SupportAssistant" />
</TextBlock>
<TextBlock Grid.Row="7" Margin="0,10,5,5" FontSize="20" Text="Special Thanks ♥" />
<TextBlock Grid.Row="7" Margin="0,10,5,5" FontSize="20" Text="{DynamicResource About:SpecialThanks}" />
<StackPanel Grid.Row="8" Orientation="Horizontal" HorizontalAlignment="Center">
<StackPanel Margin="5" Orientation="Vertical">
<TextBlock FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink NavigateUri="https://www.vanzeben.ca/" RequestNavigate="Hyperlink_RequestNavigate">
@ -72,15 +72,15 @@
<TextBlock FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center">Inspiration</TextBlock>
<TextBlock FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center">Creating the Mod Manager</TextBlock>
<TextBlock FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center">
<Hyperlink NavigateUri="https://www.patreon.com/scoresaber" RequestNavigate="Hyperlink_RequestNavigate">
Donate
<Hyperlink NavigateUri="https://www.patreon.com/scoresaber" local:HyperlinkExtensions.IsExternal="True">
<TextBlock Text="{DynamicResource About:Donate}" />
</Hyperlink>
</TextBlock>
</StackPanel>
<StackPanel Margin="5" Orientation="Vertical">
<TextBlock FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center">
<Hyperlink NavigateUri="https://www.jackbaron.com/" RequestNavigate="Hyperlink_RequestNavigate">
<Hyperlink NavigateUri="https://www.jackbaron.com/" local:HyperlinkExtensions.IsExternal="True">
lolPants
</Hyperlink>
</TextBlock>
@ -89,16 +89,16 @@
<TextBlock FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center">The first Mod repository</TextBlock>
<TextBlock FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Center">
<Hyperlink NavigateUri="https://www.paypal.me/jackmbaron" RequestNavigate="Hyperlink_RequestNavigate">
Donate
<TextBlock Text="{DynamicResource About:Donate}" />
</Hyperlink>
</TextBlock>
</StackPanel>
</StackPanel>
<StackPanel Grid.Row="9" Margin="5" Orientation="Horizontal" HorizontalAlignment="Center">
<Button x:Name="PatButton" x:FieldModifier="public" Height="30" Width="80" Margin="0,0,5,0" Content="Headpats" Click="HeadpatsButton_Click"/>
<Button x:Name="HugButton" x:FieldModifier="public" Height="30" Width="80" Margin="5,0,0,0" Content="Hugs" Click="HugsButton_Click"/>
<Button x:Name="PatButton" x:FieldModifier="public" Height="30" Width="80" Margin="0,0,5,0" Content="{DynamicResource About:HeadpatsButton}" Click="HeadpatsButton_Click"/>
<Button x:Name="HugButton" x:FieldModifier="public" Height="30" Width="80" Margin="5,0,0,0" Content="{DynamicResource About:HugsButton}" Click="HugsButton_Click"/>
</StackPanel>
<Popup Placement="Center" x:Name="PatUp" Width="auto" Height="auto">
<Border BorderBrush="Gray" BorderThickness="3">

View file

@ -1,4 +1,4 @@
<Page x:Class="ModAssistant.Pages.Intro"
<Page x:Class="ModAssistant.Pages.Intro"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -6,7 +6,7 @@
xmlns:local="clr-namespace:ModAssistant"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="Intro">
Title="DynamicResource Intro:Title">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
@ -23,48 +23,47 @@
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="48" Margin="0">Welcome to Mod Assistant</TextBlock>
<TextBlock Grid.Row="1" FontWeight="Bold" Text="Please read this page entirely and carefully" Margin="0" FontSize="28" />
<TextBlock Grid.Row="2" Margin="0,5" FontSize="16" TextWrapping="Wrap" Text="By using this program attest to have read and agree to the following terms:" />
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="48" Margin="0" Text="{DynamicResource Intro:PageTitle}" />
<TextBlock Grid.Row="1" FontWeight="Bold" Text="{DynamicResource Intro:Terms:Header}" Margin="0" FontSize="28" />
<TextBlock Grid.Row="2" Margin="0,5" FontSize="16" TextWrapping="Wrap">
<StaticResource ResourceKey="Intro:Terms:Line1" />
</TextBlock>
<TextBlock Grid.Row="3" Margin="0,5" FontSize="16" TextWrapping="Wrap">
Beat Saber <Bold>does not</Bold> natively support mods. This means:
<StaticResource ResourceKey="Intro:Terms:Line2" />
</TextBlock>
<TextBlock Grid.Row="4" Margin="15,5" FontSize="16" TextWrapping="Wrap">
Mods <Bold>will break</Bold> every update. This is normal, and <Bold>not</Bold> Beat Games' fault.
<StaticResource ResourceKey="Intro:Terms:Term1" />
</TextBlock>
<TextBlock Grid.Row="5" Margin="15,5" FontSize="16" TextWrapping="Wrap">
Mods <Bold>will</Bold> cause bugs and performance issues. This is <Bold>not</Bold> Beat Games' fault.
<StaticResource ResourceKey="Intro:Terms:Term2" />
</TextBlock>
<TextBlock Grid.Row="6" Margin="15,5" FontSize="16" TextWrapping="Wrap">
Mods are made for <Bold>free</Bold> by people in their <Bold>free time.</Bold> Please be patient and understanding.
<StaticResource ResourceKey="Intro:Terms:Term3" />
</TextBlock>
<TextBlock Grid.Row="7" Margin="0,5" FontSize="16" TextWrapping="Wrap">
<Bold>DO NOT</Bold> leave negative reviews because mods broke. This is <Bold>not</Bold> Beat Games' fault. <LineBreak/> They are not trying to kill mods.
<StaticResource ResourceKey="Intro:ReviewsBeatGamesFault" />
</TextBlock>
<TextBlock Grid.Row="8" Margin="0,5" FontSize="16" TextWrapping="Wrap">
If I keep seeing people leave negative reviews <Italic>because</Italic> mods broke, <LineBreak/><Bold>I will personally kill mods with a rusty spoon</Bold>
<StaticResource ResourceKey="Intro:ReviewsRustySpoon" />
</TextBlock>
<TextBlock Grid.Row="9" Margin="0,5" FontSize="16" TextWrapping="Wrap">
Please read the Beginners Guide on the
<Hyperlink NavigateUri="https://bsmg.wiki/beginners-guide" RequestNavigate="Hyperlink_RequestNavigate">
Wiki
</Hyperlink>.
<StaticResource ResourceKey="Intro:WikiGuide" />
</TextBlock>
<StackPanel Margin="10" Grid.Row="10" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Margin="0,0,10,0" Name="Agree" Height="35" Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Click="Agree_Click">
<TextBlock FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{DynamicResource AgreeButton}" />
<TextBlock FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{DynamicResource Intro:AgreeButton}" />
</Button>
<Button Margin="10,0,0,0" Name="Disagree" Height="35" Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Click="Disagree_Click">
<TextBlock FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{DynamicResource DisagreeButton}" />
<TextBlock FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Text="{DynamicResource Intro:DisagreeButton}" />
</Button>
</StackPanel>
</Grid>

View file

@ -1,4 +1,4 @@
<Page x:Class="ModAssistant.Pages.Invalid"
<Page x:Class="ModAssistant.Pages.Invalid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -6,7 +6,7 @@
xmlns:local="clr-namespace:ModAssistant.Pages"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="Invalid">
Title="{DynamicResource Invalid:Title}">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid.RowDefinitions>
@ -27,40 +27,32 @@
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" Grid.ColumnSpan="2" HorizontalAlignment="Left" FontSize="48" Margin="0">Invalid Installation Detected</TextBlock>
<TextBlock Grid.Row="1" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="28">Your game installation is corrupted or otherwise invalid</TextBlock>
<TextBlock Grid.Row="2" Grid.ColumnSpan="2" Margin="0,5" FontSize="16" TextWrapping="Wrap">This can happen if your copy of the game is pirated, or if you copied a pirated copy over your legit install</TextBlock>
<TextBlock VerticalAlignment="Center" Grid.ColumnSpan="2" HorizontalAlignment="Left" FontSize="48" Margin="0" Text="{DynamicResource Invalid:PageTitle}" />
<TextBlock Grid.Row="1" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="28" Text="{DynamicResource Invalid:PageSubtitle}" />
<TextBlock Grid.Row="2" Grid.ColumnSpan="2" Margin="0,5" FontSize="16" TextWrapping="Wrap" Text="{DynamicResource Invalid:List:Header}" />
<TextBlock Grid.Row="3" Grid.ColumnSpan="2" Margin="15,5" FontSize="16" TextWrapping="Wrap">
If your copy of the game is pirated,
<Bold>please purchase the game
<Hyperlink NavigateUri="https://beatgames.com/" RequestNavigate="Hyperlink_RequestNavigate">
HERE
</Hyperlink>.
</Bold>
<StaticResource ResourceKey="Invalid:List:Line1" />
</TextBlock>
<TextBlock Grid.Row="4" Grid.ColumnSpan="2" Margin="15,5" FontSize="16" TextWrapping="Wrap">
If your copy of the game is <Bold>not</Bold> pirated, please
<Hyperlink NavigateUri="https://bsmg.wiki/support#clean-installation" RequestNavigate="Hyperlink_RequestNavigate">
do a clean install
</Hyperlink>.
<StaticResource ResourceKey="Invalid:List:Line2" />
</TextBlock>
<TextBlock Grid.Row="5" Grid.ColumnSpan="2" Margin="15,5" FontSize="16" TextWrapping="Wrap">
If those don't help, ask for support in the <Span Foreground="Blue">#support</Span> channel in
<Hyperlink NavigateUri="https://discord.gg/beatsabermods" RequestNavigate="Hyperlink_RequestNavigate">
BSMG
</Hyperlink>.
<StaticResource ResourceKey="Invalid:List:Line3" />
</TextBlock>
<TextBlock Grid.Row="6" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="28"></TextBlock>
<TextBlock Grid.Row="7" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="20">If you used to have a pirated version but have since bought the game:</TextBlock>
<TextBlock Grid.Row="6" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="28" />
<TextBlock Grid.Row="7" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="20">
<TextBlock Text="{DynamicResource Invalid:BoughtGame1}" />:
</TextBlock>
<Border Grid.Row="8" Background="LightGray" Height="30" MinWidth="650" >
<TextBlock Name="DirectoryTextBlock" Margin="5" Text="{Binding InstallDirectory}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16"/>
</Border>
<Button Grid.Row="8" Grid.Column="2" Margin="3" Height="30" Width="80" Content="Select Folder" Click="SelectDirButton_Click"/>
<TextBlock Grid.Row="9" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="20">You will need to restart Mod Assistant after changing to the legit install.</TextBlock>
</Grid>
<Button Grid.Row="8" Grid.Column="2" Margin="3" Height="30" Width="80" Content="{DynamicResource Invalid:SelectFolderButton}" Click="SelectDirButton_Click"/>
<TextBlock Grid.Row="9" Grid.ColumnSpan="2" FontWeight="Bold" Margin="0" FontSize="20">
<TextBlock Text="{DynamicResource Invalid:BoughtGame2}" />.
</TextBlock>
</Grid>
</Page>

View file

@ -1,4 +1,4 @@
<Page x:Class="ModAssistant.Pages.Mods"
<Page x:Class="ModAssistant.Pages.Mods"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -6,7 +6,7 @@
xmlns:local="clr-namespace:ModAssistant"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="Mods">
Title="{DynamicResource Mods:Title}">
<Grid>
<ListView Name="ModsListView" Grid.Column="1" SelectionMode="Single" SelectionChanged="ModsListView_SelectionChanged">
@ -20,9 +20,9 @@
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding ModName}" />
<GridViewColumn Header="{DynamicResource Mods:Header:Name}" DisplayMemberBinding="{Binding ModName}" />
<GridViewColumn x:Name="InstalledColumn" Header="Installed">
<GridViewColumn x:Name="InstalledColumn" Header="{DynamicResource Mods:Header:Installed}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding InstalledVersion}" Foreground="{Binding GetVersionColor}" TextDecorations="{Binding GetVersionDecoration}" />
@ -30,8 +30,8 @@
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Latest" DisplayMemberBinding="{Binding ModVersion}" />
<GridViewColumn x:Name="DescriptionColumn" Header="Description" Width="750" >
<GridViewColumn Header="{DynamicResource Mods:Header:Latest}" DisplayMemberBinding="{Binding ModVersion}" />
<GridViewColumn x:Name="DescriptionColumn" Header="{DynamicResource Mods:Header:Description}" Width="750" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
@ -47,7 +47,7 @@
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="UninstallColumn" Header="Uninstall" Width="70">
<GridViewColumn x:Name="UninstallColumn" Header="{DynamicResource Mods:Header:Uninstall}" Width="70">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Name="Uninstall" Content="Uninstall" Visibility="{Binding CanSeeDelete}" IsEnabled="{Binding CanDelete}" Foreground="Red" Tag="{Binding ModInfo}" Click="Uninstall_Click"/>

View file

@ -1,4 +1,4 @@
<Page x:Class="ModAssistant.Pages.Options"
<Page x:Class="ModAssistant.Pages.Options"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
@ -6,7 +6,7 @@
xmlns:local="clr-namespace:ModAssistant.Pages"
mc:Ignorable="d"
d:DesignHeight="629" d:DesignWidth="1182"
Title="Options">
Title="{DynamicResource Options:Title}">
<Page.Resources>
</Page.Resources>
@ -35,42 +35,46 @@
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Margin="15,5,5,5" Text="Settings" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="0" Margin="15,5,5,5" Text="{DynamicResource Options:PageTitle}" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="1" Margin="5" Text="Install Folder" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16"/>
<TextBlock Grid.Row="1" Margin="5" Text="{DynamicResource Options:InstalFolder}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16"/>
<Border Grid.ColumnSpan="2" Grid.Row="2" Margin="5" Background="LightGray" Height="30" MinWidth="450" >
<TextBlock Name="DirectoryTextBlock" Margin="5" Text="{Binding InstallDirectory}" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="16"/>
</Border>
<Button Grid.Row="2" Grid.Column="2" Margin="3" Height="30" Width="80" Content="Select Folder" Click="SelectDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="3" Margin="3" Height="30" Width="80" Content="Open Folder" Click="OpenDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="2" Margin="3" Height="30" Width="80" Content="{DynamicResource Options:SelectFolderButton}" Click="SelectDirButton_Click"/>
<Button Grid.Row="2" Grid.Column="3" Margin="3" Height="30" Width="80" Content="{DynamicResource Options:OpenFolderButton}" Click="OpenDirButton_Click"/>
<TextBlock Grid.Row="3" Margin="5" Text="Save Selected Mods" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="3" Margin="5" Text="{DynamicResource Options:SaveSelectedMods}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="3" Grid.Column="1" Name="SaveSelected" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding SaveSelection, Mode=TwoWay}" Checked="SaveSelected_Checked" Unchecked="SaveSelected_Unchecked"/>
<TextBlock Grid.Row="4" Margin="5" Text="Check Installed Mods" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="4" Margin="5" Text="{DynamicResource Options:CheckInstalledMods}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="4" Grid.Column="1" Name="CheckInstalled" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding CheckInstalledMods, Mode=TwoWay}" Checked="CheckInstalled_Checked" Unchecked="CheckInstalled_Unchecked"/>
<TextBlock Grid.Row="5" Margin="50,5,5,5" Text="Select Installed Mods" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="5" Margin="50,5,5,5" Text="{DynamicResource Options:SelectInstalledMods}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="5" Grid.Column="1" Name="SelectInstalled" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding SelectInstalledMods, Mode=TwoWay}" Checked="SelectInstalled_Checked" Unchecked="SelectInstalled_Unchecked"/>
<TextBlock Grid.Row="6" Margin="5" Text="Enable OneClick Installs: ↳" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="6" Margin="5" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16">
<TextBlock Text="{DynamicResource Options:EnableOneClickInstalls}" />: ↳
</TextBlock>
<TextBlock Grid.Row="7" Margin="50,5,5,5" Text="BeatSaver" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="7" Margin="50,5,5,5" Text="{DynamicResource Options:BeatSaver}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="7" Grid.Column="1" Name="BeatSaverProtocolHandler" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding BeatSaverProtocolHandlerEnabled}" Checked="BeatSaverProtocolHandler_Checked" Unchecked="BeatSaverProtocolHandler_Unchecked"/>
<TextBlock Grid.Row="8" Margin="50,5,5,5" Text="ModelSaber" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<TextBlock Grid.Row="8" Margin="50,5,5,5" Text="{DynamicResource Options:ModelSaber}" FontWeight="Bold" HorizontalAlignment="Left" FontSize="16" />
<CheckBox Grid.Row="8" Grid.Column="1" Name="ModelSaberProtocolHandler" VerticalAlignment="Center" HorizontalAlignment="Left" IsChecked="{Binding ModelSaberProtocolHandlerEnabled}" Checked="ModelSaberProtocolHandler_Checked" Unchecked="ModelSaberProtocolHandler_Unchecked"/>
<StackPanel Grid.Row="12" Margin="5" Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Text="Game Type: " FontWeight="Bold" FontSize="16" />
<TextBlock Name="GameTypeTextBlock" Text="{Binding InstallType}" FontSize="16"/>
<TextBlock FontWeight="Bold" FontSize="16">
<TextBlock Text="{DynamicResource Options:GameType}" />:&#160;
</TextBlock>
<TextBlock Name="GameTypeTextBlock" Text="{Binding InstallType}" FontSize="16"/>
</StackPanel>
<TextBlock Grid.Row="13" Margin="15,5,5,5" Text="Diagnostics" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<TextBlock Grid.Row="13" Margin="15,5,5,5" Text="{DynamicResource Options:Diagnostics}" FontSize="24" FontWeight="Bold" HorizontalAlignment="Left"/>
<StackPanel Grid.Row="14" Margin="0" Orientation="Horizontal" HorizontalAlignment="Left">
<Button Margin="5" Height="30" Width="80" Content="Open Logs" Click="OpenLogsDirButton_Click"/>
<Button Margin="5" Height="30" x:Name="YeetBSIPA" Width="100" Content="Uninstall BSIPA" Click="YeetBSIPAButton_Click"/>
<Button Margin="5" Height="30" Width="110" Background="Red" Content="Remove All Mods" Click="YeetModsButton_Click"/>
<Button Margin="5" Height="30" Width="80" Content="{DynamicResource Options:OpenLogsButton}" Click="OpenLogsDirButton_Click"/>
<Button Margin="5" Height="30" x:Name="YeetBSIPA" Width="100" Content="{DynamicResource Options:UninstallBSIPAButton}" Click="YeetBSIPAButton_Click"/>
<Button Margin="5" Height="30" Width="110" Background="Red" Content="{DynamicResource Options:RemoveAllModsButton}" Click="YeetModsButton_Click"/>
</StackPanel>
</Grid>