Language switch, localization development 4
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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="" FontSize="30" ToolTipService.ToolTip="Post comment"/>
|
||||
Content="" 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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -9,23 +9,26 @@
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
<StackPanel Orientation="Vertical">
|
||||
<TextBlock x:Uid="preferences" Text="Preferences" FontSize="28"/>
|
||||
<TextBlock x:Uid="regNsearch" Text="Region & 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 & 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>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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="" 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>
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user