Archived
1
0

Language switch, localization development 4

This commit is contained in:
Michael Gordeev
2018-08-22 00:35:41 +03:00
parent 33da627445
commit e0be296fda
16 changed files with 220 additions and 61 deletions
+6
View File
@@ -8,6 +8,7 @@ using Windows.ApplicationModel.Activation;
using Windows.ApplicationModel.Core;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Globalization;
using Windows.Storage;
using Windows.UI.Core;
using Windows.UI.Xaml;
@@ -44,6 +45,11 @@ namespace FoxTube
break;
}
} catch { }
try
{
ApplicationLanguages.PrimaryLanguageOverride = (string)settings.Values["language"];
}
catch { }
this.InitializeComponent();
this.Suspending += OnSuspending;
}
+8 -7
View File
@@ -431,16 +431,17 @@
</ItemGroup>
<ItemGroup>
<None Include="FoxTube_TemporaryKey.pfx" />
<PRIResource Include="Strings\en-US\CommentsPage.resw" />
<PRIResource Include="Strings\ru-RU\LoadingPage.resw" />
<PRIResource Include="Strings\en-US\LoadingPage.resw" />
<PRIResource Include="Strings\ru-RU\Settings\Inbox.resw" />
<PRIResource Include="Strings\ru-RU\Settings\General.resw" />
<PRIResource Include="Strings\ru-RU\Settings\About.resw" />
<PRIResource Include="Strings\ru-RU\Inbox.resw" />
<PRIResource Include="Strings\ru-RU\General.resw" />
<PRIResource Include="Strings\ru-RU\About.resw" />
<PRIResource Include="Strings\ru-RU\Settings.resw" />
<PRIResource Include="Strings\en-US\Settings\Translate.resw" />
<PRIResource Include="Strings\en-US\Settings\Inbox.resw" />
<PRIResource Include="Strings\en-US\Settings\About.resw" />
<PRIResource Include="Strings\en-US\Settings\General.resw" />
<PRIResource Include="Strings\en-US\Translate.resw" />
<PRIResource Include="Strings\en-US\Inbox.resw" />
<PRIResource Include="Strings\en-US\About.resw" />
<PRIResource Include="Strings\en-US\General.resw" />
<PRIResource Include="Strings\en-US\Settings.resw" />
<PRIResource Include="Strings\ru-RU\Main.resw">
<SubType>Designer</SubType>
+5 -5
View File
@@ -18,24 +18,24 @@
<RowDefinition Height="auto"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<TextBox Margin="5,5,42,5" PlaceholderText="Add a public comment" Name="newComment" VerticalAlignment="Center" MinHeight="32" MaxHeight="100" Height="auto" AcceptsReturn="True"/>
<TextBox x:Uid="/CommentsPage/textbox" Margin="5,5,42,5" PlaceholderText="Add a public comment" Name="newComment" VerticalAlignment="Center" MinHeight="32" MaxHeight="100" Height="auto" AcceptsReturn="True"/>
<Button HorizontalAlignment="Right" Name="send" Click="send_Click" VerticalAlignment="Top"
Height="32" Width="32"
Margin="0,5,5,0" Padding="0"
Background="Transparent"
FontFamily="Segoe MDL2 Assets"
Content="&#xE122;" FontSize="30" ToolTipService.ToolTip="Post comment"/>
Content="&#xE122;" FontSize="30"/>
<ProgressBar Name="sending" IsIndeterminate="True" Foreground="Red" Visibility="Collapsed" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/>
<TextBlock Name="counter" Grid.Row="1" Text="[Comments count] Comments" Margin="5,0,0,0" VerticalAlignment="Center" FontWeight="SemiBold"/>
<StackPanel Padding="0" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,10,0">
<TextBlock Text="Sort by: " VerticalAlignment="Center" Margin="0,0,5,0"/>
<TextBlock x:Uid="/CommentsPage/sortBy" Text="Sort by: " VerticalAlignment="Center" Margin="0,0,5,0"/>
<Button Name="orderBtn" Background="Transparent" Content="Relevance" Foreground="Red" Padding="0" VerticalAlignment="Center">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Click="toRelevance_Click" Name="toRelevance" Text="Relevance"/>
<MenuFlyoutItem Click="toDate_Click" Name="toDate" Text="Date"/>
<MenuFlyoutItem x:Uid="/CommentsPage/relevance" Click="toRelevance_Click" Name="toRelevance" Text="Relevance"/>
<MenuFlyoutItem x:Uid="/CommentsPage/date" Click="toDate_Click" Name="toDate" Text="Date"/>
</MenuFlyout>
</Button.Flyout>
</Button>
+4 -4
View File
@@ -11,22 +11,22 @@
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Pivot SelectedIndex="0" Name="pivot" IsHeaderItemsCarouselEnabled="False" SelectionChanged="pivot_SelectionChanged">
<PivotItem Header="General" x:Uid="general">
<PivotItem Header="General" x:Uid="/Settings/general">
<ScrollViewer>
<settingspages:General/>
</ScrollViewer>
</PivotItem>
<PivotItem Header="About us" x:Uid="about">
<PivotItem Header="About us" x:Uid="/Settings/about">
<ScrollViewer>
<settingspages:About/>
</ScrollViewer>
</PivotItem>
<PivotItem Header="Help us translate this app" x:Uid="helpTranslate">
<PivotItem Header="Help us translate this app" x:Uid="/Settings/helpTranslate">
<ScrollViewer>
<settingspages:Translate/>
</ScrollViewer>
</PivotItem>
<PivotItem Header="Inbox" x:Uid="inbox">
<PivotItem Header="Inbox" x:Uid="/Settings/inbox">
<ScrollViewer>
<settingspages:Inbox/>
</ScrollViewer>
+14 -14
View File
@@ -28,29 +28,29 @@
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock x:Uid="aboutHeader" Text="About us and this app" FontSize="28"/>
<TextBlock x:Uid="/About/aboutHeader" Text="About us and this app" FontSize="28"/>
<TextBlock Text="FoxTube" FontSize="24"/>
<TextBlock Name="version" Text="[currentVersion]" FontSize="14" Foreground="Gray" Margin="0,-5,0,10"/>
<TextBlock x:Uid="developed" TextWrapping="WrapWholeWords" Text="Developed by Michael Gordeev (also known as XFox)" Margin="0,0,0,10"/>
<TextBlock x:Uid="/About/developed" TextWrapping="WrapWholeWords" Text="Developed by Michael Gordeev (also known as XFox)" Margin="0,0,0,10"/>
<TextBlock TextWrapping="WrapWholeWords" Visibility="Collapsed" Text="Special thanks to contributors for motivating me, testers and translators for making this app better everyday and you for using this app;)" Margin="0,0,0,10"/>
<TextBlock x:Uid="contacts" Text="Contacts" FontSize="22" FontWeight="SemiBold"/>
<TextBlock><Run x:Uid="twitter">Twitter:</Run> <Hyperlink NavigateUri="https://twitter.com/XFox_Mike">@XFox_Mike</Hyperlink></TextBlock>
<TextBlock><Run x:Uid="vk">Vkontakte:</Run> <Hyperlink NavigateUri="https://vk.com/XFox.Mike">@XFox.Mike</Hyperlink></TextBlock>
<TextBlock x:Uid="/About/contacts" Text="Contacts" FontSize="22" FontWeight="SemiBold"/>
<TextBlock><Run x:Uid="/About/twitter">Twitter:</Run> <Hyperlink NavigateUri="https://twitter.com/XFox_Mike">@XFox_Mike</Hyperlink></TextBlock>
<TextBlock><Run x:Uid="/About/vk">Vkontakte:</Run> <Hyperlink NavigateUri="https://vk.com/XFox.Mike">@XFox.Mike</Hyperlink></TextBlock>
<TextBlock>YouTube: <Hyperlink NavigateUri="https://youtube.com/c/FoxGameStudioChannel">@FoxGameStudioChannel</Hyperlink></TextBlock>
<TextBlock>E-mail: <Hyperlink NavigateUri="mailto:michael.xfox@outlook.com">michael.xfox@outlook.com</Hyperlink></TextBlock>
<TextBlock Margin="0,0,0,10"> <Run x:Uid="myBlog">My blog (Russian language only):</Run><Hyperlink NavigateUri="https://michael-xfox.com">https://michael-xfox.com</Hyperlink></TextBlock>
<TextBlock Margin="0,0,0,10"> <Run x:Uid="/About/myBlog">My blog (Russian language only):</Run> <Hyperlink NavigateUri="https://michael-xfox.com">https://michael-xfox.com</Hyperlink></TextBlock>
<TextBlock x:Uid="legal" Text="Legal stuff" FontSize="22" FontWeight="SemiBold"/>
<HyperlinkButton x:Uid="ourPrivacy" Content="Our Privacy Policy" NavigateUri="https://michael-xfox.com/foxtubepp.txt" Padding="0,5,0,0"/>
<HyperlinkButton x:Uid="ytPrivacy" Content="YouTube Privacy Policy" NavigateUri="https://youtube.com/t/privacy" Padding="0"/>
<HyperlinkButton x:Uid="terms" Content="YouTube Terms of use" NavigateUri="https://youtube.com/t/terms" Padding="0"/>
<HyperlinkButton x:Uid="guides" Content="YouTube Community Guidelines" NavigateUri="https://youtube.com/t/community_guidelines" Padding="0,0,0,10"/>
<TextBlock x:Uid="crMe" Text="© 2018 Michael Gordeev"/>
<TextBlock x:Uid="crYt" Text="© 2018 YouTube, LLC"/>
<Button x:Uid="feedback" Content="Leave feedback" Margin="0,5" Click="Button_Click"/>
<TextBlock x:Uid="/About/legal" Text="Legal stuff" FontSize="22" FontWeight="SemiBold"/>
<HyperlinkButton x:Uid="/About/ourPrivacy" Content="Our Privacy Policy" NavigateUri="https://michael-xfox.com/foxtubepp.txt" Padding="0,5,0,0"/>
<HyperlinkButton x:Uid="/About/ytPrivacy" Content="YouTube Privacy Policy" NavigateUri="https://youtube.com/t/privacy" Padding="0"/>
<HyperlinkButton x:Uid="/About/terms" Content="YouTube Terms of use" NavigateUri="https://youtube.com/t/terms" Padding="0"/>
<HyperlinkButton x:Uid="/About/guides" Content="YouTube Community Guidelines" NavigateUri="https://youtube.com/t/community_guidelines" Padding="0,0,0,10"/>
<TextBlock x:Uid="/About/crMe" Text="© 2018 Michael Gordeev"/>
<TextBlock x:Uid="/About/crYt" Text="© 2018 YouTube, LLC"/>
<Button x:Uid="/About/feedback" Content="Leave feedback" Margin="0,5" Click="Button_Click"/>
</StackPanel>
<Image Grid.Column="1" Source="/Assets/LogoAvatar.png" VerticalAlignment="Top" Width="128"/>
</Grid>
+26 -23
View File
@@ -9,23 +9,26 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Orientation="Vertical">
<TextBlock x:Uid="preferences" Text="Preferences" FontSize="28"/>
<TextBlock x:Uid="regNsearch" Text="Region &#x26; search" FontSize="22"/>
<ComboBox x:Uid="interfaceLang" Header="App interface language" MinWidth="250" Name="language" SelectionChanged="language_SelectionChanged">
<ComboBoxItem x:Uid="en" Content="English (United States)"/>
<ComboBoxItem x:Uid="ru" Content="Russian (Russia)"/>
<TextBlock x:Uid="/General/preferences" Text="Preferences" FontSize="28"/>
<TextBlock x:Uid="/General/regNsearch" Text="Region &#x26; search" FontSize="22"/>
<ComboBox x:Uid="/General/interfaceLang" Header="App interface language" MinWidth="250" Name="language" SelectionChanged="language_SelectionChanged">
<ComboBoxItem x:Uid="/General/en" Content="English (United States)" Tag="en-US"/>
<ComboBoxItem x:Uid="/General/ru" Content="Russian (Russia)" Tag="ru-RU"/>
</ComboBox>
<TextBlock x:Uid="restart" Foreground="Red" Name="restartNote" Text="Reopen the app to apply settings" Visibility="Collapsed"/>
<ComboBox x:Uid="region" Header="Region" MinWidth="250" Name="region" SelectionChanged="region_SelectionChanged"/>
<ComboBox x:Uid="safeSearch" Header="SafeSearch" MinWidth="250" Name="safeSearch" SelectionChanged="safeSearch_SelectionChanged">
<ComboBoxItem x:Uid="moderate" Content="Moderate"/>
<ComboBoxItem x:Uid="none" Content="None"/>
<ComboBoxItem x:Uid="strict" Content="Strict"/>
<StackPanel Name="restartNote" Visibility="Collapsed">
<TextBlock x:Uid="/General/restart" Foreground="Red" Text="Reopen the app to apply settings"/>
<Button x:Uid="/General/closeApp" Content="Close app" Background="Red" Margin="5" Click="Button_Click"/>
</StackPanel>
<ComboBox x:Uid="/General/region" Header="Region" MinWidth="250" Name="region" SelectionChanged="region_SelectionChanged"/>
<ComboBox x:Uid="/General/safeSearch" Header="SafeSearch" MinWidth="250" Name="safeSearch" SelectionChanged="safeSearch_SelectionChanged">
<ComboBoxItem x:Uid="/General/moderate" Content="Moderate"/>
<ComboBoxItem x:Uid="/General/none" Content="None"/>
<ComboBoxItem x:Uid="/General/strict" Content="Strict"/>
</ComboBox>
<TextBlock x:Uid="playback" Text="Playback" FontSize="22"/>
<ComboBox x:Uid="quality" Width="250" Header="Default video playback quality" Name="quality" SelectionChanged="quality_SelectionChanged">
<ComboBoxItem x:Uid="remember" Content="Remember my choice"/>
<TextBlock x:Uid="/General/playback" Text="Playback" FontSize="22"/>
<ComboBox x:Uid="/General/quality" Width="250" Header="Default video playback quality" Name="quality" SelectionChanged="quality_SelectionChanged">
<ComboBoxItem x:Uid="/General/remember" Content="Remember my choice"/>
<ComboBoxItem Content="2160p"/>
<ComboBoxItem Content="1080p"/>
<ComboBoxItem Content="720p"/>
@@ -34,16 +37,16 @@
<ComboBoxItem Content="240p"/>
<ComboBoxItem Content="144p"/>
</ComboBox>
<ToggleSwitch x:Uid="metered" OnContent="Notify when playing on metered connection" OffContent="Notify when playing on metered connection" Name="mobileWarning" Toggled="notification_IsEnabledChanged"/>
<ToggleSwitch x:Uid="autoplay" OnContent="Play videos automatically" OffContent="Play videos automatically" Name="autoplay" Toggled="notification_IsEnabledChanged"/>
<ToggleSwitch x:Uid="/General/metered" OnContent="Notify when playing on metered connection" OffContent="Notify when playing on metered connection" Name="mobileWarning" Toggled="notification_IsEnabledChanged"/>
<ToggleSwitch x:Uid="/General/autoplay" OnContent="Play videos automatically" OffContent="Play videos automatically" Name="autoplay" Toggled="notification_IsEnabledChanged"/>
<TextBlock x:Uid="notifications" Text="Notifications" FontSize="22"/>
<ToggleSwitch x:Uid="newVideo" Name="newVideo" OnContent="Notify when someone of your subscriptions uploaded new video" OffContent="Notify when someone of your subscriptions uploaded new video" Toggled="notification_IsEnabledChanged"/>
<TextBlock x:Uid="/General/notifications" Text="Notifications" FontSize="22"/>
<ToggleSwitch x:Uid="/General/newVideo" Name="newVideo" OnContent="Notify when someone of your subscriptions uploaded new video" OffContent="Notify when someone of your subscriptions uploaded new video" Toggled="notification_IsEnabledChanged"/>
<TextBlock x:Uid="color" Text="Color mode" FontSize="22"/>
<RadioButton x:Uid="colorLight" Content="Light" Name="light" GroupName="color" Checked="RadioButton_Checked"/>
<RadioButton x:Uid="colorDark" Content="Dark" Name="dark" GroupName="color" Checked="RadioButton_Checked"/>
<RadioButton x:Uid="colorDefault" Content="Windows default" Name="system" GroupName="color" Checked="RadioButton_Checked"/>
<HyperlinkButton x:Uid="colorSystem" Content="Windows color settings" NavigateUri="ms-settings:colors"/>
<TextBlock x:Uid="/General/color" Text="Color mode" FontSize="22"/>
<RadioButton x:Uid="/General/colorLight" Content="Light" Name="light" GroupName="color" Checked="RadioButton_Checked"/>
<RadioButton x:Uid="/General/colorDark" Content="Dark" Name="dark" GroupName="color" Checked="RadioButton_Checked"/>
<RadioButton x:Uid="/General/colorDefault" Content="Windows default" Name="system" GroupName="color" Checked="RadioButton_Checked"/>
<HyperlinkButton x:Uid="/General/colorSystem" Content="Windows color settings" NavigateUri="ms-settings:colors"/>
</StackPanel>
</Page>
+11 -3
View File
@@ -5,6 +5,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel.Core;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
@@ -31,7 +32,7 @@ namespace FoxTube.Pages.SettingsPages
{
this.InitializeComponent();
language.SelectedIndex = (int)settings.Values["language"];
language.SelectedIndex = (string)settings.Values["language"] == "en-US"? 0 : 1;
quality.SelectedIndex = (int)settings.Values["quality"];
newVideo.IsOn = (bool)settings.Values["newVideoNotification"];
@@ -64,11 +65,13 @@ namespace FoxTube.Pages.SettingsPages
private void language_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if ((int)settings.Values["language"] != language.SelectedIndex)
if ((string)settings.Values["language"] != (language.SelectedItem as ComboBoxItem).Tag.ToString())
{
settings.Values["language"] = language.SelectedIndex;
settings.Values["language"] = (language.SelectedItem as ComboBoxItem).Tag.ToString();
restartNote.Visibility = Visibility.Visible;
}
else
restartNote.Visibility = Visibility.Collapsed;
}
private void quality_SelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -117,5 +120,10 @@ namespace FoxTube.Pages.SettingsPages
Methods.MainPage.SetTitleBar();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
CoreApplication.Exit();
}
}
}
+5 -5
View File
@@ -55,10 +55,10 @@
</Grid.ColumnDefinitions>
<ScrollViewer Background="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}">
<StackPanel VerticalAlignment="Stretch">
<ComboBox x:Uid="filter" Header="Filter" Margin="10" HorizontalAlignment="Stretch" SelectedIndex="0" Name="filter" SelectionChanged="filter_SelectionChanged">
<ComboBoxItem x:Uid="all" Content="All"/>
<ComboBoxItem x:Uid="messages" Content="Messages"/>
<ComboBoxItem x:Uid="changelogs" Content="Patch notes"/>
<ComboBox x:Uid="/Inbox/filter" Header="Filter" Margin="10" HorizontalAlignment="Stretch" SelectedIndex="0" Name="filter" SelectionChanged="filter_SelectionChanged">
<ComboBoxItem x:Uid="/Inbox/all" Content="All"/>
<ComboBoxItem x:Uid="/Inbox/messages" Content="Messages"/>
<ComboBoxItem x:Uid="/Inbox/changelogs" Content="Patch notes"/>
</ComboBox>
<ListBox Name="list" SelectionChanged="list_SelectionChanged" Background="Transparent">
<ListBox.ItemContainerStyle>
@@ -101,7 +101,7 @@
<Grid Grid.Column="1" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Name="block">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock FontFamily="Segoe MDL2 Assets" Text="&#xE7EA;" FontSize="70" Foreground="Gray" Margin="10"/>
<TextBlock x:Uid="select" Text="Select item from list" FontSize="30" VerticalAlignment="Center" Foreground="Gray"/>
<TextBlock x:Uid="/Inbox/select" Text="Select item from list" FontSize="30" VerticalAlignment="Center" Foreground="Gray"/>
</StackPanel>
</Grid>
</Grid>
+135
View File
@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="date.Text" xml:space="preserve">
<value>Date</value>
</data>
<data name="more.Content" xml:space="preserve">
<value>Show more</value>
</data>
<data name="relevance.Text" xml:space="preserve">
<value>Relevance</value>
</data>
<data name="sortBy.Text" xml:space="preserve">
<value>Sort by: </value>
</data>
<data name="textbox.PlaceholderText" xml:space="preserve">
<value>Add a public comment</value>
</data>
</root>
@@ -195,4 +195,7 @@
<data name="strict.Content" xml:space="preserve">
<value>Strict</value>
</data>
<data name="closeApp.Content" xml:space="preserve">
<value>Close app</value>
</data>
</root>
@@ -195,4 +195,7 @@
<data name="strict.Content" xml:space="preserve">
<value>Строгий</value>
</data>
<data name="closeApp.Content" xml:space="preserve">
<value>Закрыть приложение</value>
</data>
</root>