Browse Source

New feature: switching from Russian to English

pull/17/head
oZ-Zo 5 years ago
parent
commit
6c0b142106
  1. 37
      W10SS_GUI/Classes/AppCulture.cs
  2. 23
      W10SS_GUI/Localized/RU.xaml
  3. 116
      W10SS_GUI/MainWindow.xaml
  4. 58
      W10SS_GUI/MainWindow.xaml.cs
  5. 14
      W10SS_GUI/Model/ModelGui.cs
  6. 3
      W10SS_GUI/Resource/tags.xaml
  7. 2
      W10SS_GUI/W10SS_GUI.csproj
  8. BIN
      Win10SetupScript.zip

37
W10SS_GUI/Classes/AppCulture.cs

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
namespace W10SS_GUI
{
internal class AppCulture
{
private class Culture
{
internal const string EN = "en";
internal const string RU = "ru";
}
private string _culture = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName == Culture.RU ? Culture.RU : Culture.EN;
private ResourceDictionary resourceDictionaryEn = new ResourceDictionary() { Source = new Uri("pack://application:,,,/Localized/EN.xaml", UriKind.Absolute) };
private ResourceDictionary resourceDictionaryRu = new ResourceDictionary() { Source = new Uri("pack://application:,,,/Localized/RU.xaml", UriKind.Absolute) };
internal ResourceDictionary CurrentCulture
{
get
{
return _culture == Culture.RU ? resourceDictionaryRu : resourceDictionaryEn;
}
}
internal ResourceDictionary ChangeCulture()
{
if (_culture == Culture.RU) _culture = Culture.EN;
else _culture = Culture.RU;
return _culture == Culture.RU ? resourceDictionaryRu : resourceDictionaryEn;
}
}
}

23
W10SS_GUI/Localized/RU.xaml

@ -1,5 +1,24 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:W10SS_GUI.Localized">
xmlns:local="clr-namespace:W10SS_GUI.Localized"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="textWindowTitle">Windows 10 Setup Script</system:String>
<system:String x:Key="textHamburgerPrivacy">Телеметрия</system:String>
<system:String x:Key="textHamburgerUi">Персонализация</system:String>
<system:String x:Key="textHamburgerOneDrive">OneDrive</system:String>
<system:String x:Key="textHamburgerSystem">Система</system:String>
<system:String x:Key="textHamburgerStartMenu">Меню "Пуск"</system:String>
<system:String x:Key="textHamburgerUwp">UWP Приложения</system:String>
<system:String x:Key="textHamburgerWinGame">Игровой режим</system:String>
<system:String x:Key="textHamburgerTaskScheduler">Планировщик</system:String>
<system:String x:Key="textHamburgerDefender">Microsoft Defender</system:String>
<system:String x:Key="textHamburgerContextMenu">Контекстное меню</system:String>
<system:String x:Key="textHamburgerApply">Применить</system:String>
<system:String x:Key="textHamburgerSave">Сохранить</system:String>
<system:String x:Key="textHamburgerLoad">Импортировать</system:String>
<system:String x:Key="textHamburgerLanguage">English</system:String>
<system:String x:Key="textHamburgerOpenGithub">GitHub</system:String>
</ResourceDictionary>

116
W10SS_GUI/MainWindow.xaml

@ -19,9 +19,7 @@
ResizeMode="CanResize"
ShowInTaskbar="True"
Background="{DynamicResource colorWindowBackground}"
Foreground="{DynamicResource colorWindowForeground}"
Initialized="Window_Initialized"
Icon="windows10.ico"
Foreground="{DynamicResource colorWindowForeground}"
SizeToContent="Manual">
<Window.Style>
<Style TargetType="{x:Type Window}">
@ -59,7 +57,8 @@
TextMargin="0 0 10 3"
Tag="{StaticResource tagCategoryPrivacy}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="0" Canvas.Left="0"/>
Canvas.Top="0" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerUi"
Icon="{StaticResource iconHamburgerUi}"
@ -68,7 +67,8 @@
TextMargin="0 0 10 -2"
Tag="{StaticResource tagCategoryUi}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="40" Canvas.Left="0"/>
Canvas.Top="40" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerOneDrive"
IconVisibility="Collapsed"
@ -77,7 +77,8 @@
Width="{Binding ElementName=panelHamburger, Path=Width}"
TextMargin="0 0 10 3"
Tag="{StaticResource tagCategoryOneDrive}"
Canvas.Top="80" Canvas.Left="0" />
Canvas.Top="80" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerSystem"
Icon="{StaticResource iconHamburgerSystem}"
@ -86,7 +87,8 @@
TextMargin="0 0 10 1"
Tag="{StaticResource tagCategorySystem}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="120" Canvas.Left="0"/>
Canvas.Top="120" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerStartMenu"
Icon="{StaticResource iconHamburgerStartMenu}"
@ -95,7 +97,8 @@
TextMargin="0 0 10 5"
Tag="{StaticResource tagCategoryStartMenu}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="160" Canvas.Left="0"/>
Canvas.Top="160" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerUwp"
Icon="{StaticResource iconHamburgerUwp}"
@ -104,7 +107,8 @@
TextMargin="0 0 10 1"
Tag="{StaticResource tagCategoryUwp}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="200" Canvas.Left="0" />
Canvas.Top="200" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerWinGame"
IconVisibility="Collapsed"
@ -113,7 +117,8 @@
Width="{Binding ElementName=panelHamburger, Path=Width}"
TextMargin="0 0 10 4"
Tag="{StaticResource tagCategoryWinGame}"
Canvas.Top="240" Canvas.Left="0"/>
Canvas.Top="240" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerTaskScheduler"
IconVisibility="Collapsed"
@ -122,7 +127,8 @@
Width="{Binding ElementName=panelHamburger, Path=Width}"
TextMargin="0 0 10 2"
Tag="{StaticResource tagCategoryTaskScheduler}"
Canvas.Top="280" Canvas.Left="0"/>
Canvas.Top="280" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerDefender"
Icon="{StaticResource iconHamburgerDefender}"
@ -131,7 +137,8 @@
TextMargin="0 0 10 4"
Tag="{StaticResource tagCategoryDefender}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="320" Canvas.Left="0"/>
Canvas.Top="320" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerContextMenu"
Icon="{StaticResource iconHamburgerContextMenu}"
@ -140,7 +147,8 @@
TextMargin="0 0 10 3"
Tag="{StaticResource tagCategoryContextMenu}"
ViewboxPathVisibility="Collapsed"
Canvas.Top="360" Canvas.Left="0"/>
Canvas.Top="360" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburger_Click"/>
<uc:HamburgerCategoryFlashButton x:Name="buttonHamburgerApplySettings"
IsEnabled="False"
@ -174,7 +182,8 @@
Text="{DynamicResource textHamburgerLanguage}"
Width="{Binding ElementName=panelHamburger, Path=Width}"
TextMargin="0 0 10 3"
Canvas.Bottom="160" Canvas.Left="0"/>
Canvas.Bottom="160" Canvas.Left="0"
MouseLeftButtonDown="ButtonHamburgerLanguageSettings_Click"/>
<uc:HamburgerCategoryButton x:Name="buttonHamburgerOpenGithub"
IconVisibility="Collapsed"
@ -194,19 +203,13 @@
Orientation="Horizontal"
VerticalAlignment="Top"
Margin="40 0 0 0">
<!--<TextBlock Name="iconTogglesHeader"
FontSize="{StaticResource iconTogglesCategoryPanelHeaderFontSize}"
FontFamily="{StaticResource fontToggleIcon}"
Margin="15 5 10 5"
Text="{StaticResource iconHamburgerPrivacy}"/>-->
<TextBlock Name="textTogglesHeader"
FontSize="{StaticResource fontSizeTogglesCategoryPanelHeader}"
FontFamily="{StaticResource fontTogglesPanelHeader}"
VerticalAlignment="Center"
Margin="15 5 0 5"
Text="{DynamicResource textHamburgerPrivacy}"/>
Text=""/>
</StackPanel>
@ -221,56 +224,45 @@
<StackPanel Name="panelTogglesCategoryContainer">
<StackPanel Name="panelTogglesCategoryPrivacy"
Tag="{StaticResource tagCategoryPrivacy}">
<uc:ToggleSwitch
Header="Change Windows Feedback frequency to Never"
Description="Изменить частоту формирования отзывов на Никогда" />
<uc:ToggleSwitch
Header="Do not allow apps to use advertising ID"
Description="Не разрешать приложениям использовать идентификатор рекламы"/>
<StackPanel x:Name="panelTogglesCategoryPrivacy"
Tag="{StaticResource tagCategoryPrivacy}"
Visibility="Collapsed" />
<uc:ToggleSwitch
Header="Do not let apps on other devices open and message apps on this device, and vice versa"
Description="Не разрешать приложениям на других устройствах запускать приложения и отправлять сообщения на этом устройстве и наоборот"/>
<StackPanel Name="panelTogglesCategoryUi"
Tag="{StaticResource tagCategoryUi}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not let websites provide locally relevant content by accessing language list"
Description="Не позволять веб-сайтам предоставлять местную информацию за счет доступа к списку языков"/>
<StackPanel Name="panelTogglesCategoryOneDrive"
Tag="{StaticResource tagCategoryOneDrive}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Change Windows Feedback frequency to Never"
Description="Изменить частоту формирования отзывов на Никогда" />
<StackPanel Name="panelTogglesCategorySystem"
Tag="{StaticResource tagCategorySystem}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not allow apps to use advertising ID"
Description="Не разрешать приложениям использовать идентификатор рекламы"/>
<StackPanel Name="panelTogglesCategoryStartMenu"
Tag="{StaticResource tagCategoryStartMenu}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not let apps on other devices open and message apps on this device, and vice versa"
Description="Не разрешать приложениям на других устройствах запускать приложения и отправлять сообщения на этом устройстве и наоборот"/>
<StackPanel Name="panelTogglesCategoryUwp"
Tag="{StaticResource tagCategoryUwp}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not let websites provide locally relevant content by accessing language list"
Description="Не позволять веб-сайтам предоставлять местную информацию за счет доступа к списку языков"/>
<uc:ToggleSwitch
Header="Change Windows Feedback frequency to Never"
Description="Изменить частоту формирования отзывов на Никогда" />
<StackPanel Name="panelTogglesCategoryWinGame"
Tag="{StaticResource tagCategoryWinGame}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not allow apps to use advertising ID"
Description="Не разрешать приложениям использовать идентификатор рекламы"/>
<StackPanel Name="panelTogglesCategoryTaskScheduler"
Tag="{StaticResource tagCategoryTaskScheduler}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not let apps on other devices open and message apps on this device, and vice versa"
Description="Не разрешать приложениям на других устройствах запускать приложения и отправлять сообщения на этом устройстве и наоборот"/>
<StackPanel Name="panelTogglesCategoryDefender"
Tag="{StaticResource tagCategoryDefender}"
Visibility="Collapsed"/>
<uc:ToggleSwitch
Header="Do not let websites provide locally relevant content by accessing language list"
Description="Не позволять веб-сайтам предоставлять местную информацию за счет доступа к списку языков"/>
</StackPanel>
<StackPanel Name="panelTogglesCategoryContextMenu"
Tag="{StaticResource tagCategoryContextMenu}"
Visibility="Collapsed"/>
</StackPanel>

58
W10SS_GUI/MainWindow.xaml.cs

@ -1,5 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
@ -22,28 +24,56 @@ namespace W10SS_GUI
/// </summary>
public partial class MainWindow : Window
{
private Dictionary<string, StackPanel> TogglesCategoryPanels = new Dictionary<string, StackPanel>();
private AppCulture AppCulture = new AppCulture();
public MainWindow()
{
InitializeComponent();
}
InitializeComponent();
SetUiLanguage();
InitializeVariables();
InitializeToggles();
}
private void InitializeToggles()
{
//AppDomain.CurrentDomain.BaseDirectory
}
private void InitializeVariables()
{
ICollection tagsDictionaryValues = Application.Current.Resources.MergedDictionaries.Where(r => r.Source.Segments[2] == "tags.xaml").FirstOrDefault().Values;
foreach (var tagValue in tagsDictionaryValues)
{
TogglesCategoryPanels.Add(tagValue.ToString(), panelTogglesCategoryContainer.Children.OfType<StackPanel>().Where(p => p.Tag == tagValue).FirstOrDefault());
}
textTogglesHeader.Text = buttonHamburgerPrivacy.Text;
}
private void Window_Initialized(object sender, EventArgs e)
private void SetUiLanguage()
{
SetLanguageDictionary();
}
private void SetLanguageDictionary()
Resources.MergedDictionaries.Add(AppCulture.CurrentCulture);
}
private void ButtonHamburger_Click(object sender, MouseButtonEventArgs e)
{
ResourceDictionary dict = new ResourceDictionary();
HamburgerCategoryButton button = sender as HamburgerCategoryButton;
string tag = button.Tag.ToString();
switch (Thread.CurrentThread.CurrentCulture.ToString())
foreach (KeyValuePair<string, StackPanel> kvp in TogglesCategoryPanels)
{
default:
dict.Source = new Uri("pack://application:,,,/Localized/EN.xaml", UriKind.Absolute);
break;
kvp.Value.Visibility = kvp.Key == tag ? Visibility.Visible : Visibility.Collapsed;
}
Resources.MergedDictionaries.Add(dict);
}
textTogglesHeader.Text = button.Text;
}
private void ButtonHamburgerLanguageSettings_Click(object sender, MouseButtonEventArgs e)
{
Resources.MergedDictionaries.Add(AppCulture.ChangeCulture());
textTogglesHeader.Text = buttonHamburgerPrivacy.Text;
}
}
}

14
W10SS_GUI/Model/ModelGui.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace W10SS_GUI.Model
{
class ModelGui
{
}
}

3
W10SS_GUI/Resource/tags.xaml

@ -1,7 +1,6 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:W10SS_GUI.Resource">
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="tagCategoryPrivacy">Privacy &amp; Telemetry</system:String>
<system:String x:Key="tagCategoryUi">UI &amp; Personalization</system:String>

2
W10SS_GUI/W10SS_GUI.csproj

@ -111,6 +111,7 @@
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Classes\AppCulture.cs" />
<Compile Include="Controls\HamburgerCategoryButton.xaml.cs">
<DependentUpon>HamburgerCategoryButton.xaml</DependentUpon>
</Compile>
@ -159,5 +160,6 @@
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

BIN
Win10SetupScript.zip

Binary file not shown.
Loading…
Cancel
Save