Updated localization
Titles are now localized Updated ads (including default AdUintId)
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
- Added "Share" button to video cards
|
||||
- Added "Delete video from playlist" button to video cards on playlist page\
|
||||
- Improved channel cover quality
|
||||
- If available, shows localized titles and descriptions (based on "Search relevance language" parameter set in settings)
|
||||
- Updated russian localization
|
||||
</en-US>
|
||||
<ru-RU>### Что нового:
|
||||
- Оптимизация приложения
|
||||
@@ -31,6 +33,8 @@
|
||||
- Добавлена кнопка "Поделиться" к видео карточкам
|
||||
- Добавлена кнопка "Удалить видео из плейлиста" к видео карточкам на страницах плейлистов
|
||||
- Улучшено качество обложки канала
|
||||
- Показывает локализированные заголовки и описания если доступны (основан на параметре "Предпочитаемый язык поиска" установленного в настройках)
|
||||
- Обновлена русская локализация
|
||||
</ru-RU>
|
||||
</content>
|
||||
</item>
|
||||
|
||||
@@ -42,9 +42,9 @@ namespace FoxTube
|
||||
};
|
||||
public static YouTubeService Service => IsAuthorized ? new YouTubeService(Initializer) : NoAuthService;
|
||||
public static HttpClient HttpClient { get; } = new HttpClient();
|
||||
private static bool TestAds => true; //Change this bool
|
||||
private static bool TestAds => false; //Change this bool
|
||||
public static string AppId => TestAds ? "d25517cb-12d4-4699-8bdc-52040c712cab" : "9ncqqxjtdlfh";
|
||||
public static string AdUnitId => TestAds ? "test" : "1100037769";
|
||||
public static string AdUnitId => TestAds ? "test" : "1100044398";
|
||||
public static bool AdsDisabled { get; private set; } = true;
|
||||
|
||||
//User info
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
VerticalAlignment="Top"
|
||||
d:DesignHeight="290"
|
||||
d:DesignWidth="384"
|
||||
Visibility="Collapsed"
|
||||
Opacity="0"
|
||||
Name="card">
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace FoxTube.Controls.Adverts
|
||||
|
||||
private void Methods_VideoPageSizeChanged(object sender = null, params object[] args)
|
||||
{
|
||||
Visibility = (bool)args[0] ? Visibility.Collapsed : Visibility.Visible;
|
||||
Visibility = !(bool)args[0] && advert != null ? Visibility.Visible : Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void ErrorOccurred(object sender, NativeAdErrorEventArgs e)
|
||||
@@ -42,6 +42,7 @@ namespace FoxTube.Controls.Adverts
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
Visibility = Visibility.Visible;
|
||||
title.Text = advert.Title;
|
||||
image.Source = new BitmapImage(advert.MainImages.First().Url.ToUri());
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace FoxTube
|
||||
avatar = channelAvatar;
|
||||
|
||||
videoSource.PosterSource = new BitmapImage((meta.Snippet.Thumbnails.Maxres ?? meta.Snippet.Thumbnails.Medium).Url.ToUri());
|
||||
Controls.SetMeta(meta.Snippet.Title, meta.Snippet.ChannelTitle);
|
||||
Controls.SetMeta(meta.Snippet.Localized.Title, meta.Snippet.ChannelTitle);
|
||||
|
||||
if (item.Snippet.LiveBroadcastContent == "none")
|
||||
{
|
||||
|
||||
@@ -34,9 +34,10 @@ namespace FoxTube.Controls
|
||||
playlistId = id;
|
||||
PlaylistsResource.ListRequest request = SecretsVault.Service.Playlists.List("snippet,contentDetails");
|
||||
request.Id = playlistId;
|
||||
request.Hl = SettingsStorage.RelevanceLanguage;
|
||||
item = (await request.ExecuteAsync()).Items[0];
|
||||
|
||||
title.Text = item.Snippet.Title;
|
||||
title.Text = item.Snippet.Localized.Title;
|
||||
channelName.Text = item.Snippet.ChannelTitle;
|
||||
counter.Text = item.ContentDetails.ItemCount.ToString();
|
||||
date.Text = Methods.GetAgo(item.Snippet.PublishedAt.Value);
|
||||
|
||||
@@ -83,13 +83,13 @@
|
||||
<MenuFlyoutItem x:Uid="/Cards/openWeb" Icon="Globe" Text="Open in browser" Name="inBrowser" Click="InBrowser_Click"/>
|
||||
<MenuFlyoutItem x:Uid="/Cards/share" Icon="Share" Text="Share" Name="share" Click="share_Click"/>
|
||||
<MenuFlyoutSeparator/>
|
||||
<MenuFlyoutSubItem Icon="Download" Text="Download" Name="download"/>
|
||||
<MenuFlyoutSubItem Icon="Add" Text="Add to" Name="addTo">
|
||||
<MenuFlyoutItem Text="New playlist" Name="newPlaylist" Click="NewPlaylist_Click" Icon="Add"/>
|
||||
<ToggleMenuFlyoutItem Text="Watch later" Name="wl" Click="Wl_Click" Icon="Clock"/>
|
||||
<MenuFlyoutSubItem x:Uid="/Cards/downloads" Icon="Download" Text="Download" Name="download"/>
|
||||
<MenuFlyoutSubItem x:Uid="/Cards/addTo" Icon="Add" Text="Add to" Name="addTo">
|
||||
<MenuFlyoutItem x:Uid="/VideoPage/newPlaylist" Text="New playlist" Name="newPlaylist" Click="NewPlaylist_Click" Icon="Add"/>
|
||||
<ToggleMenuFlyoutItem x:Uid="/VideoPage/wl" Text="Watch later" Name="wl" Click="Wl_Click" Icon="Clock"/>
|
||||
<MenuFlyoutSeparator/>
|
||||
</MenuFlyoutSubItem>
|
||||
<MenuFlyoutItem Text="Remove from playlist" Icon="Delete" Visibility="Collapsed" Name="delete" Click="Delete_Click"/>
|
||||
<MenuFlyoutItem x:Uid="/Cards/delete" Text="Remove from playlist" Icon="Delete" Visibility="Collapsed" Name="delete" Click="Delete_Click"/>
|
||||
</MenuFlyout>
|
||||
</UserControl.ContextFlyout>
|
||||
</UserControl>
|
||||
|
||||
@@ -53,9 +53,10 @@ namespace FoxTube.Controls
|
||||
|
||||
VideosResource.ListRequest request = SecretsVault.Service.Videos.List("snippet,contentDetails,statistics,liveStreamingDetails");
|
||||
request.Id = id;
|
||||
request.Hl = SettingsStorage.RelevanceLanguage;
|
||||
item = (await request.ExecuteAsync()).Items[0];
|
||||
|
||||
title.Text = item.Snippet.Title;
|
||||
title.Text = item.Snippet.Localized.Title;
|
||||
channelName.Text = item.Snippet.ChannelTitle;
|
||||
|
||||
if (item.Snippet.Title == "Deleted video")
|
||||
@@ -123,7 +124,6 @@ namespace FoxTube.Controls
|
||||
{
|
||||
try
|
||||
{
|
||||
// TODO: Localize context menu
|
||||
MediaStreamInfoSet infoSet = await new YoutubeClient().GetVideoMediaStreamInfosAsync(videoId);
|
||||
foreach (MuxedStreamInfo i in infoSet.Muxed)
|
||||
{
|
||||
@@ -276,31 +276,30 @@ namespace FoxTube.Controls
|
||||
|
||||
private async void NewPlaylist_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// TODO: Localize strings
|
||||
StackPanel stack = new StackPanel();
|
||||
stack.Children.Add(new TextBox
|
||||
{
|
||||
PlaceholderText = "Enter playlist name"
|
||||
PlaceholderText = resources.GetString("/VideoPage/newPlaylistName/PlaceholderText")
|
||||
});
|
||||
|
||||
ComboBox comboBox = new ComboBox
|
||||
{
|
||||
Header = "Availablity",
|
||||
Header = resources.GetString("/VideoPage/privacy/Header"),
|
||||
SelectedIndex = 0,
|
||||
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||
};
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = "Public" });
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = "Private" });
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = "Direct link" });
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = resources.GetString("/VideoPage/public/Content") });
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = resources.GetString("/VideoPage/private/Content") });
|
||||
comboBox.Items.Add(new ComboBoxItem { Content = resources.GetString("/VideoPage/direct/Content") });
|
||||
|
||||
stack.Children.Add(comboBox);
|
||||
|
||||
ContentDialog playlistDialog = new ContentDialog
|
||||
{
|
||||
PrimaryButtonText = "Create and add",
|
||||
CloseButtonText = "Cancel",
|
||||
PrimaryButtonText = resources.GetString("/VideoPage/dialog/PrimaryButtonText"),
|
||||
CloseButtonText = resources.GetString("/VideoPage/dialog/CloseButtonText"),
|
||||
DefaultButton = ContentDialogButton.Primary,
|
||||
Title = "New playlist",
|
||||
Title = resources.GetString("/VideoPage/dialog/Title"),
|
||||
Content = stack
|
||||
};
|
||||
playlistDialog.PrimaryButtonClick += PlaylistDialog_PrimaryButtonClick;
|
||||
@@ -449,6 +448,8 @@ namespace FoxTube.Controls
|
||||
}
|
||||
|
||||
private async void Delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
PlaylistItemsResource.ListRequest request = SecretsVault.Service.PlaylistItems.List("snippet");
|
||||
request.PlaylistId = playlistId;
|
||||
@@ -460,8 +461,6 @@ namespace FoxTube.Controls
|
||||
await SecretsVault.Service.PlaylistItems.Delete(playlistItem.Id).ExecuteAsync();
|
||||
|
||||
(Methods.MainPage.PageContent as PlaylistPage).DeleteItem(this);
|
||||
try
|
||||
{
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<ui:NavigationView.Header>
|
||||
<Grid>
|
||||
<TextBlock Text="Home" Name="Title" Style="{StaticResource TitleTextBlockStyle}"/>
|
||||
<TextBlock Name="Title" Style="{StaticResource TitleTextBlockStyle}"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Uid="/Main/feedback" Name="feedback" Click="Feedback_Click" Visibility="Collapsed" FontFamily="Segoe MDL2 Assets" Content="" Background="Transparent" Height="41" Width="60" FontSize="15"/>
|
||||
<Button x:Uid="/Main/signIn" Name="account" Click="SignIn_Click" Visibility="Collapsed" FontFamily="Segoe MDL2 Assets" Content="" Background="Transparent" Height="41" Width="60" FontSize="15"/>
|
||||
|
||||
@@ -47,10 +47,10 @@ namespace FoxTube
|
||||
removeAds.Visibility = (e[0] as bool?).Value ? Visibility.Collapsed : Visibility.Visible;
|
||||
if (!(bool)e[0])
|
||||
return;
|
||||
//TODO: Localize strings
|
||||
MessageDialog dialog = new MessageDialog("Thanks for purchasing full version of the app (^∇^) In order to complete changes we need to reopen it. But you can do it later");
|
||||
dialog.Commands.Add(new UICommand("Close the app", (command) => Methods.CloseApp()));
|
||||
dialog.Commands.Add(new UICommand("Later"));
|
||||
|
||||
MessageDialog dialog = new MessageDialog(resources.GetString("/Main/purchaseSuccess"));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/close"), (command) => Methods.CloseApp()));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/delay")));
|
||||
dialog.CancelCommandIndex = 1;
|
||||
dialog.DefaultCommandIndex = 0;
|
||||
await dialog.ShowAsync();
|
||||
@@ -83,22 +83,21 @@ namespace FoxTube
|
||||
|
||||
async void PromptFeedback()
|
||||
{
|
||||
//TODO: Localize strings
|
||||
if (SettingsStorage.Uptime.TotalHours >= 12 && SettingsStorage.PromptFeedback)
|
||||
{
|
||||
MessageDialog dialog = new MessageDialog("Have some thoughts to share about the app or any suggestions? Leave feedback!");
|
||||
dialog.Commands.Add(new UICommand("Don't ask me anymore", (command) => SettingsStorage.PromptFeedback = false));
|
||||
dialog.Commands.Add(new UICommand("Maybe later"));
|
||||
dialog.Commands.Add(new UICommand("Sure!", async (command) =>
|
||||
MessageDialog dialog = new MessageDialog(resources.GetString("/Main/feedbackMessage"));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/dontAsk"), (command) => SettingsStorage.PromptFeedback = false));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/promptLater")));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/sure"), async (command) =>
|
||||
{
|
||||
SettingsStorage.PromptFeedback = false;
|
||||
if (StoreServicesFeedbackLauncher.IsSupported())
|
||||
await StoreServicesFeedbackLauncher.GetDefault().LaunchAsync();
|
||||
else
|
||||
{
|
||||
MessageDialog message = new MessageDialog("Oops. Seems like you don't have a Feedback Hub app. But you can stil send your feedback to michael.xfox@outlook.com");
|
||||
message.Commands.Add(new UICommand("Send an E-mail", async (c) => await Launcher.LaunchUriAsync("mailto:michael.xfox@outlook.com".ToUri())));
|
||||
message.Commands.Add(new UICommand("Nevermind. Get me back"));
|
||||
MessageDialog message = new MessageDialog(resources.GetString("/Main/feedbackFail"));
|
||||
message.Commands.Add(new UICommand(resources.GetString("/Main/sendEmail"), async (c) => await Launcher.LaunchUriAsync("mailto:michael.xfox@outlook.com".ToUri())));
|
||||
message.Commands.Add(new UICommand(resources.GetString("/Main/goBack")));
|
||||
message.CancelCommandIndex = 1;
|
||||
message.DefaultCommandIndex = 0;
|
||||
await message.ShowAsync();
|
||||
@@ -111,10 +110,10 @@ namespace FoxTube
|
||||
|
||||
if (SettingsStorage.Uptime.TotalHours >= 24 && SettingsStorage.PromptReview)
|
||||
{
|
||||
MessageDialog dialog = new MessageDialog("Like our app? Review it on Microsoft Store!");
|
||||
dialog.Commands.Add(new UICommand("Don't ask me anymore", (command) => SettingsStorage.PromptReview = false));
|
||||
dialog.Commands.Add(new UICommand("Maybe later"));
|
||||
dialog.Commands.Add(new UICommand("Sure!", async (command) =>
|
||||
MessageDialog dialog = new MessageDialog(resources.GetString("/Main/rate"));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/dontAsk"), (command) => SettingsStorage.PromptReview = false));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/promptLater")));
|
||||
dialog.Commands.Add(new UICommand(resources.GetString("/Main/sure"), async (command) =>
|
||||
{
|
||||
SettingsStorage.PromptReview = false;
|
||||
await Launcher.LaunchUriAsync("ms-windows-store://review/?ProductId=9NCQQXJTDLFH".ToUri());
|
||||
|
||||
@@ -54,12 +54,13 @@ namespace FoxTube.Pages
|
||||
|
||||
PlaylistsResource.ListRequest infoRequest = SecretsVault.Service.Playlists.List("snippet,contentDetails");
|
||||
infoRequest.Id = id;
|
||||
infoRequest.Hl = SettingsStorage.RelevanceLanguage;
|
||||
|
||||
item = (await infoRequest.ExecuteAsync()).Items[0];
|
||||
|
||||
title.Text = item.Snippet.Title;
|
||||
title.Text = item.Snippet.Localized.Title;
|
||||
info.Text = $"{item.ContentDetails.ItemCount} {ResourceLoader.GetForCurrentView("Playlist").GetString("/Playlist/videos")}";
|
||||
description.Text = item.Snippet.Description;
|
||||
description.Text = item.Snippet.Localized.Description;
|
||||
|
||||
channelName.Text = item.Snippet.ChannelTitle;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<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 Header="Search relevance language" MinWidth="250" Name="relLanguage" SelectionChanged="RelLanguage_SelectionChanged"/>
|
||||
<ComboBox x:Uid="/General/relevanceLanguage" Header="Search relevance language" MinWidth="250" Name="relLanguage" SelectionChanged="RelLanguage_SelectionChanged"/>
|
||||
<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"/>
|
||||
|
||||
@@ -112,8 +112,8 @@
|
||||
<AppBarButton x:Uid="/VideoPage/addTo" Name="addTo" Label="Add to" Icon="Add" Visibility="Visible">
|
||||
<AppBarButton.Flyout>
|
||||
<MenuFlyout x:Name="addList">
|
||||
<MenuFlyoutItem Text="New playlist" Name="newPlaylist" Click="NewPlaylist_Click" Icon="Add"/>
|
||||
<ToggleMenuFlyoutItem Text="Watch later" Name="wl" Click="Wl_Click" Icon="Clock"/>
|
||||
<MenuFlyoutItem x:Uid="/VideoPage/newPlaylist" Text="New playlist" Name="newPlaylist" Click="NewPlaylist_Click" Icon="Add"/>
|
||||
<ToggleMenuFlyoutItem x:Uid="/VideoPage/wl" Text="Watch later" Name="wl" Click="Wl_Click" Icon="Clock"/>
|
||||
<MenuFlyoutSeparator/>
|
||||
</MenuFlyout>
|
||||
</AppBarButton.Flyout>
|
||||
@@ -163,13 +163,13 @@
|
||||
</Pivot>
|
||||
</Grid>
|
||||
|
||||
<ContentDialog PrimaryButtonText="Create and add" Title="New playlist" CloseButtonText="Cancel" DefaultButton="Primary" PrimaryButtonClick="ContentDialog_PrimaryButtonClick" Name="playlistDialog">
|
||||
<ContentDialog x:Uid="/VideoPage/dialog" PrimaryButtonText="Create and add" Title="New playlist" CloseButtonText="Cancel" DefaultButton="Primary" PrimaryButtonClick="ContentDialog_PrimaryButtonClick" Name="playlistDialog">
|
||||
<StackPanel>
|
||||
<TextBox PlaceholderText="Enter playlist name" Name="newListName"/>
|
||||
<ComboBox Header="Availablity" SelectedIndex="0" HorizontalAlignment="Stretch" Name="newListDisc">
|
||||
<ComboBoxItem Content="Public"/>
|
||||
<ComboBoxItem Content="Private"/>
|
||||
<ComboBoxItem Content="Direct link"/>
|
||||
<TextBox x:Uid="/VideoPage/newPlaylistName" PlaceholderText="Enter playlist name" Name="newListName"/>
|
||||
<ComboBox x:Uid="/VideoPage/privacy" Header="Availablity" SelectedIndex="0" HorizontalAlignment="Stretch" Name="newListDisc">
|
||||
<ComboBoxItem x:Uid="/VideoPage/public" Content="Public"/>
|
||||
<ComboBoxItem x:Uid="/VideoPage/private" Content="Private"/>
|
||||
<ComboBoxItem x:Uid="/VideoPage/direct" Content="Direct link"/>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</ContentDialog>
|
||||
|
||||
@@ -113,6 +113,7 @@ namespace FoxTube.Pages
|
||||
|
||||
VideosResource.ListRequest request = SecretsVault.Service.Videos.List("snippet,statistics,status,contentDetails,liveStreamingDetails");
|
||||
request.Id = ids[0];
|
||||
request.Hl = SettingsStorage.RelevanceLanguage;
|
||||
item = (await request.ExecuteAsync()).Items[0];
|
||||
|
||||
if (item.Snippet.LiveBroadcastContent == "none")
|
||||
@@ -183,6 +184,7 @@ namespace FoxTube.Pages
|
||||
//Retrieving data
|
||||
PlaylistsResource.ListRequest playlistRequest = SecretsVault.Service.Playlists.List("snippet,contentDetails");
|
||||
playlistRequest.Id = id;
|
||||
playlistRequest.Hl = SettingsStorage.RelevanceLanguage;
|
||||
Playlist playlistItem = (await playlistRequest.ExecuteAsync()).Items[0];
|
||||
|
||||
PlaylistItemsResource.ListRequest listRequest = SecretsVault.Service.PlaylistItems.List("snippet");
|
||||
@@ -206,7 +208,7 @@ namespace FoxTube.Pages
|
||||
items[k].Number = k + 1;
|
||||
|
||||
//Setting data
|
||||
playlistName.Text = playlistItem.Snippet.Title;
|
||||
playlistName.Text = playlistItem.Snippet.Localized.Title;
|
||||
playlistChannel.Text = playlistItem.Snippet.ChannelTitle;
|
||||
|
||||
playlistCounter.Text = $"{items.IndexOf(selection) + 1}/{playlistItem.ContentDetails.ItemCount}";
|
||||
@@ -226,9 +228,9 @@ namespace FoxTube.Pages
|
||||
async void LoadInfo()
|
||||
{
|
||||
//Setting meta
|
||||
title.Text = item.Snippet.Title;
|
||||
title.Text = item.Snippet.Localized.Title;
|
||||
date.Text = $"{resources.GetString("/VideoPage/publishedAt")}: {item.Snippet.PublishedAt} ({Methods.GetAgo(item.Snippet.PublishedAt.Value)})";
|
||||
Methods.FormatText(ref description, item.Snippet.Description);
|
||||
Methods.FormatText(ref description, item.Snippet.Localized.Description);
|
||||
|
||||
//Setting channel button
|
||||
ChannelsResource.ListRequest channelRequest = SecretsVault.Service.Channels.List("snippet, statistics");
|
||||
@@ -652,7 +654,6 @@ namespace FoxTube.Pages
|
||||
|
||||
private async void NewPlaylist_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//TODO: Localize strings
|
||||
await playlistDialog.ShowAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -186,4 +186,13 @@
|
||||
<data name="watched.Text" xml:space="preserve">
|
||||
<value>Watched</value>
|
||||
</data>
|
||||
<data name="addTo.Text" xml:space="preserve">
|
||||
<value>Add to</value>
|
||||
</data>
|
||||
<data name="delete.Text" xml:space="preserve">
|
||||
<value>Delete from playlist</value>
|
||||
</data>
|
||||
<data name="downloads.Text" xml:space="preserve">
|
||||
<value>Downloads</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -184,7 +184,7 @@
|
||||
<value>Remember my choice</value>
|
||||
</data>
|
||||
<data name="restart.Text" xml:space="preserve">
|
||||
<value>Reopen the app to apply changes</value>
|
||||
<value>Reopen the app to apply changes (otherwise some elements may not be displayed correctly)</value>
|
||||
</data>
|
||||
<data name="ru.Content" xml:space="preserve">
|
||||
<value>Russian (Russian Federation)</value>
|
||||
@@ -204,4 +204,7 @@
|
||||
<data name="devNotifications.OnContent" xml:space="preserve">
|
||||
<value>Recieve messages from developers</value>
|
||||
</data>
|
||||
<data name="relevanceLanguage.Header" xml:space="preserve">
|
||||
<value>Search relevance language</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -126,18 +126,36 @@
|
||||
<data name="channel" xml:space="preserve">
|
||||
<value>Channel</value>
|
||||
</data>
|
||||
<data name="close" xml:space="preserve">
|
||||
<value>Close the app</value>
|
||||
</data>
|
||||
<data name="connectErrContent" xml:space="preserve">
|
||||
<value>We were unabled to retrieve your account information due to weak internet connection or Google servers' problems. PLease, try again later</value>
|
||||
</data>
|
||||
<data name="connectErrHeader" xml:space="preserve">
|
||||
<value>Failed to connect</value>
|
||||
</data>
|
||||
<data name="delay" xml:space="preserve">
|
||||
<value>Later</value>
|
||||
</data>
|
||||
<data name="dontAsk" xml:space="preserve">
|
||||
<value>Don't ask me anymore</value>
|
||||
</data>
|
||||
<data name="downloads.Content" xml:space="preserve">
|
||||
<value>Downloads</value>
|
||||
</data>
|
||||
<data name="feedback.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
||||
<value>Give a feedback</value>
|
||||
</data>
|
||||
<data name="feedbackFail" xml:space="preserve">
|
||||
<value>Oops. Seems like you don't have a Feedback Hub app. But you can stil send your feedback to michael.xfox@outlook.com</value>
|
||||
</data>
|
||||
<data name="feedbackMessage" xml:space="preserve">
|
||||
<value>Have some thoughts to share about the app or any suggestions? Leave feedback!</value>
|
||||
</data>
|
||||
<data name="goBack" xml:space="preserve">
|
||||
<value>Nevermind. Get me back</value>
|
||||
</data>
|
||||
<data name="history.Content" xml:space="preserve">
|
||||
<value>History</value>
|
||||
</data>
|
||||
@@ -168,12 +186,24 @@
|
||||
<data name="playlist" xml:space="preserve">
|
||||
<value>Playlist</value>
|
||||
</data>
|
||||
<data name="promptLater" xml:space="preserve">
|
||||
<value>Maybe later</value>
|
||||
</data>
|
||||
<data name="purchaseSuccess" xml:space="preserve">
|
||||
<value>Thanks for purchasing full version of the app (^∇^) In order to complete changes we need to reopen it. But you can do it later (some elements may be broken)</value>
|
||||
</data>
|
||||
<data name="quit" xml:space="preserve">
|
||||
<value>Quit</value>
|
||||
</data>
|
||||
<data name="rate" xml:space="preserve">
|
||||
<value>Like our app? Review it on Microsoft Store!</value>
|
||||
</data>
|
||||
<data name="searchPlaceholder.PlaceholderText" xml:space="preserve">
|
||||
<value>Search</value>
|
||||
</data>
|
||||
<data name="sendEmail" xml:space="preserve">
|
||||
<value>Send an E-mail</value>
|
||||
</data>
|
||||
<data name="settings.Content" xml:space="preserve">
|
||||
<value>Settings</value>
|
||||
</data>
|
||||
@@ -192,6 +222,9 @@
|
||||
<data name="subscriptions.Content" xml:space="preserve">
|
||||
<value>Subscriptions</value>
|
||||
</data>
|
||||
<data name="sure" xml:space="preserve">
|
||||
<value>Sure!</value>
|
||||
</data>
|
||||
<data name="tryAgain" xml:space="preserve">
|
||||
<value>Try again</value>
|
||||
</data>
|
||||
|
||||
@@ -264,4 +264,34 @@
|
||||
<data name="publishedAt" xml:space="preserve">
|
||||
<value>Published at</value>
|
||||
</data>
|
||||
<data name="dialog.CloseButtonText" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="dialog.PrimaryButtonText" xml:space="preserve">
|
||||
<value>Create and add</value>
|
||||
</data>
|
||||
<data name="dialog.Title" xml:space="preserve">
|
||||
<value>New playlist</value>
|
||||
</data>
|
||||
<data name="direct.Content" xml:space="preserve">
|
||||
<value>Direct link</value>
|
||||
</data>
|
||||
<data name="newPlaylist.Text" xml:space="preserve">
|
||||
<value>New playlist</value>
|
||||
</data>
|
||||
<data name="newPlaylistName.PlaceholderText" xml:space="preserve">
|
||||
<value>Enter playlist name</value>
|
||||
</data>
|
||||
<data name="privacy.Header" xml:space="preserve">
|
||||
<value>Availability</value>
|
||||
</data>
|
||||
<data name="private.Content" xml:space="preserve">
|
||||
<value>Private</value>
|
||||
</data>
|
||||
<data name="public.Content" xml:space="preserve">
|
||||
<value>Public</value>
|
||||
</data>
|
||||
<data name="wl.Text" xml:space="preserve">
|
||||
<value>Watch later</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -186,4 +186,13 @@
|
||||
<data name="watched.Text" xml:space="preserve">
|
||||
<value>Просмотрено</value>
|
||||
</data>
|
||||
<data name="addTo.Text" xml:space="preserve">
|
||||
<value>Добавить в</value>
|
||||
</data>
|
||||
<data name="delete.Text" xml:space="preserve">
|
||||
<value>Удалить из плейлиста</value>
|
||||
</data>
|
||||
<data name="downloads.Text" xml:space="preserve">
|
||||
<value>Загрузки</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -184,7 +184,7 @@
|
||||
<value>Запомнить мой выбор</value>
|
||||
</data>
|
||||
<data name="restart.Text" xml:space="preserve">
|
||||
<value>Перезапустите приложение, чтобы применить настройки</value>
|
||||
<value>Перезапустите приложение, чтобы применить настройки (в противном случае некоторые элементы могут неправильно отображаться)</value>
|
||||
</data>
|
||||
<data name="ru.Content" xml:space="preserve">
|
||||
<value>Русский (Российская Федерация)</value>
|
||||
@@ -204,4 +204,7 @@
|
||||
<data name="devNotifications.OnContent" xml:space="preserve">
|
||||
<value>Получать уведомления от разработчиков</value>
|
||||
</data>
|
||||
<data name="relevanceLanguage.Header" xml:space="preserve">
|
||||
<value>Предпочитаемый язык поиска</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -126,18 +126,36 @@
|
||||
<data name="channel" xml:space="preserve">
|
||||
<value>Канал</value>
|
||||
</data>
|
||||
<data name="close" xml:space="preserve">
|
||||
<value>Закрыть приложение</value>
|
||||
</data>
|
||||
<data name="connectErrContent" xml:space="preserve">
|
||||
<value>Нам не удалось подключиться к серверу из-за плохого соединения или проблем на стороне YouTube. Пожалуйста, попробуйте позже</value>
|
||||
</data>
|
||||
<data name="connectErrHeader" xml:space="preserve">
|
||||
<value>Не удалось подключиться</value>
|
||||
</data>
|
||||
<data name="delay" xml:space="preserve">
|
||||
<value>Позже</value>
|
||||
</data>
|
||||
<data name="dontAsk" xml:space="preserve">
|
||||
<value>Больше не спрашивайте меня</value>
|
||||
</data>
|
||||
<data name="downloads.Content" xml:space="preserve">
|
||||
<value>Загрузки</value>
|
||||
</data>
|
||||
<data name="feedback.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
||||
<value>Оставить отзыв</value>
|
||||
</data>
|
||||
<data name="feedbackFail" xml:space="preserve">
|
||||
<value>Ой. Похоже, у вас нет приложения "Центр отзывов". Но вы все еще можете отправить свой отзыв по почте</value>
|
||||
</data>
|
||||
<data name="feedbackMessage" xml:space="preserve">
|
||||
<value>Есть мысли или идеи по поводу нашего приложения? Оставьте отзыв!</value>
|
||||
</data>
|
||||
<data name="goBack" xml:space="preserve">
|
||||
<value>Не важно. Я передумал</value>
|
||||
</data>
|
||||
<data name="history.Content" xml:space="preserve">
|
||||
<value>История</value>
|
||||
</data>
|
||||
@@ -168,12 +186,24 @@
|
||||
<data name="playlist" xml:space="preserve">
|
||||
<value>Плейлист</value>
|
||||
</data>
|
||||
<data name="promptLater" xml:space="preserve">
|
||||
<value>Может, позже</value>
|
||||
</data>
|
||||
<data name="purchaseSuccess" xml:space="preserve">
|
||||
<value>Спасибо за покупку полной версии приложения (^∇^) Для завершения настройки нам необходимо перезапустить приложение. Но вы можете сделать это позже (некоторые элементы могут неправильно отображаться)</value>
|
||||
</data>
|
||||
<data name="quit" xml:space="preserve">
|
||||
<value>Выйти</value>
|
||||
</data>
|
||||
<data name="rate" xml:space="preserve">
|
||||
<value>Нравится наше приложение? Напишите отзыв в магазине Майкрософт!</value>
|
||||
</data>
|
||||
<data name="searchPlaceholder.PlaceholderText" xml:space="preserve">
|
||||
<value>Поиск</value>
|
||||
</data>
|
||||
<data name="sendEmail" xml:space="preserve">
|
||||
<value>Отправить письмо</value>
|
||||
</data>
|
||||
<data name="settings.Content" xml:space="preserve">
|
||||
<value>Настройки</value>
|
||||
</data>
|
||||
@@ -192,6 +222,9 @@
|
||||
<data name="subscriptions.Content" xml:space="preserve">
|
||||
<value>Подписки</value>
|
||||
</data>
|
||||
<data name="sure" xml:space="preserve">
|
||||
<value>Конечно!</value>
|
||||
</data>
|
||||
<data name="tryAgain" xml:space="preserve">
|
||||
<value>Попробовать снова</value>
|
||||
</data>
|
||||
|
||||
@@ -264,4 +264,34 @@
|
||||
<data name="publishedAt" xml:space="preserve">
|
||||
<value>Опубликовано</value>
|
||||
</data>
|
||||
<data name="dialog.CloseButtonText" xml:space="preserve">
|
||||
<value>Отмена</value>
|
||||
</data>
|
||||
<data name="dialog.PrimaryButtonText" xml:space="preserve">
|
||||
<value>Создать и добавить</value>
|
||||
</data>
|
||||
<data name="dialog.Title" xml:space="preserve">
|
||||
<value>Новый плейлист</value>
|
||||
</data>
|
||||
<data name="direct.Content" xml:space="preserve">
|
||||
<value>Прямая ссылка</value>
|
||||
</data>
|
||||
<data name="newPlaylist.Text" xml:space="preserve">
|
||||
<value>Новый плейлист</value>
|
||||
</data>
|
||||
<data name="newPlaylistName.PlaceholderText" xml:space="preserve">
|
||||
<value>Введите название плейлиста</value>
|
||||
</data>
|
||||
<data name="privacy.Header" xml:space="preserve">
|
||||
<value>Доступность</value>
|
||||
</data>
|
||||
<data name="private.Content" xml:space="preserve">
|
||||
<value>Закрытый</value>
|
||||
</data>
|
||||
<data name="public.Content" xml:space="preserve">
|
||||
<value>Публичный</value>
|
||||
</data>
|
||||
<data name="wl.Text" xml:space="preserve">
|
||||
<value>Посмотреть позже</value>
|
||||
</data>
|
||||
</root>
|
||||
Reference in New Issue
Block a user