From 998aa751091ed4997c3059bc5feeb765ddd94bcf Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Sat, 13 Apr 2019 23:37:48 +0300 Subject: [PATCH] Updated localization Titles are now localized Updated ads (including default AdUintId) --- FoxTube/Assets/Data/Patchnotes.xml | 4 ++ FoxTube/Classes/SecretsVault.cs | 4 +- FoxTube/Controls/Adverts/CardAdvert.xaml | 1 + FoxTube/Controls/Adverts/CardAdvert.xaml.cs | 3 +- FoxTube/Controls/Player/VideoPlayer.xaml.cs | 2 +- FoxTube/Controls/PlaylistCard.xaml.cs | 3 +- FoxTube/Controls/VideoCard.xaml | 10 ++--- FoxTube/Controls/VideoCard.xaml.cs | 41 ++++++++++----------- FoxTube/Pages/MainPage.xaml | 2 +- FoxTube/Pages/MainPage.xaml.cs | 31 ++++++++-------- FoxTube/Pages/PlaylistPage.xaml.cs | 5 ++- FoxTube/Pages/SettingsPages/General.xaml | 2 +- FoxTube/Pages/VideoPage.xaml | 16 ++++---- FoxTube/Pages/VideoPage.xaml.cs | 9 +++-- FoxTube/Strings/en-US/Cards.resw | 9 +++++ FoxTube/Strings/en-US/General.resw | 5 ++- FoxTube/Strings/en-US/Main.resw | 33 +++++++++++++++++ FoxTube/Strings/en-US/VideoPage.resw | 30 +++++++++++++++ FoxTube/Strings/ru-RU/Cards.resw | 9 +++++ FoxTube/Strings/ru-RU/General.resw | 5 ++- FoxTube/Strings/ru-RU/Main.resw | 33 +++++++++++++++++ FoxTube/Strings/ru-RU/VideoPage.resw | 30 +++++++++++++++ 22 files changed, 222 insertions(+), 65 deletions(-) diff --git a/FoxTube/Assets/Data/Patchnotes.xml b/FoxTube/Assets/Data/Patchnotes.xml index 6d33fcb..89f0965 100644 --- a/FoxTube/Assets/Data/Patchnotes.xml +++ b/FoxTube/Assets/Data/Patchnotes.xml @@ -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 ### Что нового: - Оптимизация приложения @@ -31,6 +33,8 @@ - Добавлена кнопка "Поделиться" к видео карточкам - Добавлена кнопка "Удалить видео из плейлиста" к видео карточкам на страницах плейлистов - Улучшено качество обложки канала +- Показывает локализированные заголовки и описания если доступны (основан на параметре "Предпочитаемый язык поиска" установленного в настройках) +- Обновлена русская локализация diff --git a/FoxTube/Classes/SecretsVault.cs b/FoxTube/Classes/SecretsVault.cs index affa15c..d92c748 100644 --- a/FoxTube/Classes/SecretsVault.cs +++ b/FoxTube/Classes/SecretsVault.cs @@ -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 diff --git a/FoxTube/Controls/Adverts/CardAdvert.xaml b/FoxTube/Controls/Adverts/CardAdvert.xaml index 9711087..c947886 100644 --- a/FoxTube/Controls/Adverts/CardAdvert.xaml +++ b/FoxTube/Controls/Adverts/CardAdvert.xaml @@ -9,6 +9,7 @@ VerticalAlignment="Top" d:DesignHeight="290" d:DesignWidth="384" + Visibility="Collapsed" Opacity="0" Name="card"> diff --git a/FoxTube/Controls/Adverts/CardAdvert.xaml.cs b/FoxTube/Controls/Adverts/CardAdvert.xaml.cs index c39c37a..3fe093c 100644 --- a/FoxTube/Controls/Adverts/CardAdvert.xaml.cs +++ b/FoxTube/Controls/Adverts/CardAdvert.xaml.cs @@ -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()); diff --git a/FoxTube/Controls/Player/VideoPlayer.xaml.cs b/FoxTube/Controls/Player/VideoPlayer.xaml.cs index 032dde6..21f4739 100644 --- a/FoxTube/Controls/Player/VideoPlayer.xaml.cs +++ b/FoxTube/Controls/Player/VideoPlayer.xaml.cs @@ -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") { diff --git a/FoxTube/Controls/PlaylistCard.xaml.cs b/FoxTube/Controls/PlaylistCard.xaml.cs index 867d365..5c802b2 100644 --- a/FoxTube/Controls/PlaylistCard.xaml.cs +++ b/FoxTube/Controls/PlaylistCard.xaml.cs @@ -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); diff --git a/FoxTube/Controls/VideoCard.xaml b/FoxTube/Controls/VideoCard.xaml index 626fc25..1794833 100644 --- a/FoxTube/Controls/VideoCard.xaml +++ b/FoxTube/Controls/VideoCard.xaml @@ -83,13 +83,13 @@ - - - - + + + + - + diff --git a/FoxTube/Controls/VideoCard.xaml.cs b/FoxTube/Controls/VideoCard.xaml.cs index 99ba584..41b23c8 100644 --- a/FoxTube/Controls/VideoCard.xaml.cs +++ b/FoxTube/Controls/VideoCard.xaml.cs @@ -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; @@ -450,18 +449,18 @@ namespace FoxTube.Controls private async void Delete_Click(object sender, RoutedEventArgs e) { - PlaylistItemsResource.ListRequest request = SecretsVault.Service.PlaylistItems.List("snippet"); - request.PlaylistId = playlistId; - request.VideoId = item.Id; - PlaylistItemListResponse response = await request.ExecuteAsync(); - - PlaylistItem playlistItem = response.Items.Find(i => i.Snippet.PlaylistId == playlistId); - - await SecretsVault.Service.PlaylistItems.Delete(playlistItem.Id).ExecuteAsync(); - - (Methods.MainPage.PageContent as PlaylistPage).DeleteItem(this); try { + PlaylistItemsResource.ListRequest request = SecretsVault.Service.PlaylistItems.List("snippet"); + request.PlaylistId = playlistId; + request.VideoId = item.Id; + PlaylistItemListResponse response = await request.ExecuteAsync(); + + PlaylistItem playlistItem = response.Items.Find(i => i.Snippet.PlaylistId == playlistId); + + await SecretsVault.Service.PlaylistItems.Delete(playlistItem.Id).ExecuteAsync(); + + (Methods.MainPage.PageContent as PlaylistPage).DeleteItem(this); } catch { diff --git a/FoxTube/Pages/MainPage.xaml b/FoxTube/Pages/MainPage.xaml index 64aad07..c01bd43 100644 --- a/FoxTube/Pages/MainPage.xaml +++ b/FoxTube/Pages/MainPage.xaml @@ -38,7 +38,7 @@ - +