Player fixes. Localization updates. Tiles updated
Related Work Items: #161
@@ -140,6 +140,9 @@
|
|||||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<SignAssembly>false</SignAssembly>
|
||||||
|
</PropertyGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@@ -1,7 +1,34 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<items>
|
<items>
|
||||||
<item time="2019-01-02T10:00:00-03" version="0.2.1901">
|
<item time="2019-01-02T10:00:00-03" version="0.2.1901">
|
||||||
<content>### Что нового:
|
<content>
|
||||||
|
<en-US>### What's new:
|
||||||
|
|
||||||
|
- Loading thumbnail for cards in max resolution
|
||||||
|
- Missynchronization fixed. Supporting all existing qualities
|
||||||
|
- Livestreams support (including chat and live stats update)
|
||||||
|
- Player fixes
|
||||||
|
- New logo is added
|
||||||
|
- Wrong elapsed and remaining displaying (if time span is greater than 1 hr) time fixed
|
||||||
|
- Russian localization updated
|
||||||
|
- Context menu for items cards
|
||||||
|
- Small bug fixes
|
||||||
|
- Settings storage system updated
|
||||||
|
- Changelogs now will be here
|
||||||
|
- Changelogs are multilingual now
|
||||||
|
|
||||||
|
### Known issues:
|
||||||
|
|
||||||
|
- Recommended and subscriptions pages aren't implemented
|
||||||
|
- History isn't implemented
|
||||||
|
- Playlists management isn't implemented
|
||||||
|
- 'Live' button in player works worng
|
||||||
|
- Fullscreen height is wrong on every screen resolution except 1920x1080
|
||||||
|
- When exiting fullscreen mode menu renders wrong
|
||||||
|
- Player seek is doing wrong
|
||||||
|
- I'm not sure that you succeed in closing a video
|
||||||
|
</en-US>
|
||||||
|
<ru-RU>### Что нового:
|
||||||
|
|
||||||
- По умолчанию для карточек загружается максимальное разрешение картинки
|
- По умолчанию для карточек загружается максимальное разрешение картинки
|
||||||
- Пофикшен рассинхрон и теперь поддерживаются все возможные разрешения
|
- Пофикшен рассинхрон и теперь поддерживаются все возможные разрешения
|
||||||
@@ -14,12 +41,20 @@
|
|||||||
- Мелкие багфиксы
|
- Мелкие багфиксы
|
||||||
- Обновлена система хранения настроек
|
- Обновлена система хранения настроек
|
||||||
- Теперь чейнджлоги будут здесь, а не в файле
|
- Теперь чейнджлоги будут здесь, а не в файле
|
||||||
|
- Чейнджлог теперь ведется на двух языках
|
||||||
|
|
||||||
### Что по-прежнему не работает:
|
### Что по-прежнему не работает:
|
||||||
|
|
||||||
- Страница рекомендованных видео и страница видео с подписок
|
- Страница рекомендованных видео и страница видео с подписок
|
||||||
- История
|
- История
|
||||||
- Работа с плейлистами</content>
|
- Работа с плейлистами
|
||||||
|
- Кнопка 'Live' в плеере работает плохо
|
||||||
|
- Неправильная высота плеера в полноэкранном режиме при разрешении не равном 1920х1080
|
||||||
|
- Меню неправильно отображается при выходе из полноэкранного режима
|
||||||
|
- Перемотка в плеера работает через раз
|
||||||
|
- Я не уверен, что видео можно просто так закрыть
|
||||||
|
</ru-RU>
|
||||||
|
</content>
|
||||||
</item>
|
</item>
|
||||||
</items>
|
</items>
|
||||||
<!--<item time="YYYY-MM-DDThh:mm:ss-03" version="1.0.1">
|
<!--<item time="YYYY-MM-DDThh:mm:ss-03" version="1.0.1">
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
@@ -37,10 +37,26 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" Margin="5,0">
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" Margin="5,0">
|
||||||
<PersonPicture Height="20" ProfilePicture="{Binding Path=Avatar}"/>
|
<PersonPicture Height="20" ProfilePicture="{Binding Path=Avatar}"/>
|
||||||
<FontIcon Glyph="" ToolTipService.ToolTip="{Binding Path=verified}" Margin="2,0" Visibility="{Binding Path=IsVerified}"/>
|
<FontIcon Glyph="" Margin="2,0" Visibility="{Binding Path=IsVerified}">
|
||||||
<FontIcon Glyph="" ToolTipService.ToolTip="{Binding Path=moderator}" Margin="2,0" Visibility="{Binding Path=IsModerator}"/>
|
<ToolTipService.ToolTip>
|
||||||
<FontIcon Glyph="" ToolTipService.ToolTip="{Binding Path=owner}" Margin="2,0" Visibility="{Binding Path=IsOwner}"/>
|
<TextBlock x:Uid="/Chat/verified"/>
|
||||||
<FontIcon Glyph="" ToolTipService.ToolTip="{Binding Path=sponsor}" Margin="2,0" Visibility="{Binding Path=IsSponsor}"/>
|
</ToolTipService.ToolTip>
|
||||||
|
</FontIcon>
|
||||||
|
<FontIcon Glyph="" Margin="2,0" Visibility="{Binding Path=IsModerator}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/Chat/moder"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</FontIcon>
|
||||||
|
<FontIcon Glyph="" Margin="2,0" Visibility="{Binding Path=IsOwner}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/Chat/owner"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</FontIcon>
|
||||||
|
<FontIcon Glyph="" Margin="2,0" Visibility="{Binding Path=IsSponsor}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/Chat/sponsor"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</FontIcon>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal" Grid.Column="1" VerticalAlignment="Top" Margin="0,0,5,0">
|
<StackPanel Orientation="Horizontal" Grid.Column="1" VerticalAlignment="Top" Margin="0,0,5,0">
|
||||||
<HyperlinkButton Content="{Binding Path=Author}" Tag="{Binding Path=ChannelId}" Grid.Column="1" Margin="0,-6,0,0" FontWeight="Bold" Click="HyperlinkButton_Click"/>
|
<HyperlinkButton Content="{Binding Path=Author}" Tag="{Binding Path=ChannelId}" Grid.Column="1" Margin="0,-6,0,0" FontWeight="Bold" Click="HyperlinkButton_Click"/>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using Windows.UI.Xaml.Media;
|
|||||||
using Google.Apis.YouTube.v3.Data;
|
using Google.Apis.YouTube.v3.Data;
|
||||||
using Google.Apis.YouTube.v3;
|
using Google.Apis.YouTube.v3;
|
||||||
using Windows.UI;
|
using Windows.UI;
|
||||||
using Windows.ApplicationModel.Resources;
|
|
||||||
|
|
||||||
namespace FoxTube.Controls
|
namespace FoxTube.Controls
|
||||||
{
|
{
|
||||||
@@ -61,11 +60,6 @@ namespace FoxTube.Controls
|
|||||||
{
|
{
|
||||||
message = item;
|
message = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
string verified = ResourceLoader.GetForCurrentView("Chat").GetString("/Chat/verified");
|
|
||||||
string moderator = ResourceLoader.GetForCurrentView("Chat").GetString("/Chat/moder");
|
|
||||||
string owner = ResourceLoader.GetForCurrentView("Chat").GetString("/Chat/owner");
|
|
||||||
string sponsor = ResourceLoader.GetForCurrentView("Chat").GetString("/Chat/sponsor");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed partial class Chat : UserControl
|
public sealed partial class Chat : UserControl
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ namespace FoxTube.Controls
|
|||||||
</visual>
|
</visual>
|
||||||
|
|
||||||
<actions>
|
<actions>
|
||||||
<action content='{resources.GetString("/Downloads/gotoOrign/Content")}'
|
<action content='{resources.GetString("/Downloads/gotoOrign/Text")}'
|
||||||
activationType='foreground'
|
activationType='foreground'
|
||||||
arguments='video|{Container.Id}'/>
|
arguments='video|{Container.Id}'/>
|
||||||
</actions>
|
</actions>
|
||||||
|
|||||||
@@ -30,15 +30,31 @@
|
|||||||
<ColumnDefinition/>
|
<ColumnDefinition/>
|
||||||
<ColumnDefinition Width="auto"/>
|
<ColumnDefinition Width="auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Button Click="minimize_Click" Name="minimize" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Minimize"/>
|
<Button Click="minimize_Click" Name="minimize" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/minimize"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
<StackPanel Grid.Column="1" Margin="10,0,10,0" VerticalAlignment="Center">
|
<StackPanel Grid.Column="1" Margin="10,0,10,0" VerticalAlignment="Center">
|
||||||
<TextBlock Name="title" Text="[Title]" Foreground="White" VerticalAlignment="Center" TextWrapping="WrapWholeWords" FontSize="20" MaxLines="1" ToolTipService.ToolTip="Title"/>
|
<TextBlock Name="title" Text="[Title]" Foreground="White" VerticalAlignment="Center" TextWrapping="WrapWholeWords" FontSize="20" MaxLines="1"/>
|
||||||
<TextBlock Foreground="LightGray" Text="[Channel name]" Name="channelName" FontStyle="Italic"/>
|
<TextBlock Foreground="LightGray" Text="[Channel name]" Name="channelName" FontStyle="Italic"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||||
<Button Name="closeHeader" Click="close_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Close video"/>
|
<Button Name="closeHeader" Click="close_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
<Button Name="cast" Click="cast_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Cast to device"/>
|
<ToolTipService.ToolTip>
|
||||||
<Button Name="miniViewBtn" Click="miniView_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Compact view mode" HorizontalAlignment="Center" Margin="0,0,0,0" VerticalAlignment="Center"/>
|
<TextBlock x:Uid="/VideoPage/close"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Name="cast" Click="cast_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/cast"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Name="miniViewBtn" Click="miniView_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" HorizontalAlignment="Center" Margin="0,0,0,0" VerticalAlignment="Center">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/miniview"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -50,15 +66,26 @@
|
|||||||
<Button VerticalAlignment="Center" Content="" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="100" Foreground="WhiteSmoke" Name="touchPlay" Click="play_Click"/>
|
<Button VerticalAlignment="Center" Content="" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="100" Foreground="WhiteSmoke" Name="touchPlay" Click="play_Click"/>
|
||||||
<Button VerticalAlignment="Center" Content="" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="40" Foreground="WhiteSmoke" Name="touchFwd30" Click="fwd30_Click"/>
|
<Button VerticalAlignment="Center" Content="" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="40" Foreground="WhiteSmoke" Name="touchFwd30" Click="fwd30_Click"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Button Visibility="Collapsed" Margin="0,32,0,0" VerticalAlignment="Top" HorizontalAlignment="Right" Name="miniViewExit" Grid.Row="1" Click="miniView_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="45" Height="45" FontSize="25" ToolTipService.ToolTip="Exit compact view mode"/>
|
<Button Visibility="Collapsed" Margin="0,32,0,0" VerticalAlignment="Top" HorizontalAlignment="Right" Name="miniViewExit" Grid.Row="1" Click="miniView_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="45" Height="45" FontSize="25">
|
||||||
<Button Visibility="Collapsed" VerticalAlignment="Top" HorizontalAlignment="Right" Name="close" Click="close_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="45" Height="45" FontSize="25" ToolTipService.ToolTip="Close video"/>
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/exitminiview"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Visibility="Collapsed" VerticalAlignment="Top" HorizontalAlignment="Right" Name="close" Click="close_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="45" Height="45" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/close"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
<Button Visibility="Collapsed"
|
<Button Visibility="Collapsed"
|
||||||
VerticalAlignment="Top" HorizontalAlignment="Left"
|
VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||||
Name="maximize" Click="maximize_Click"
|
Name="maximize" Click="maximize_Click"
|
||||||
Background="Transparent" FontFamily="Segoe MDL2 Assets" Foreground="White" FontSize="25"
|
Background="Transparent" FontFamily="Segoe MDL2 Assets" Foreground="White" FontSize="25"
|
||||||
Content=""
|
Content=""
|
||||||
Width="45" Height="45"
|
Width="45" Height="45">
|
||||||
ToolTipService.ToolTip="Maximize"/>
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/maximize"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
<ProgressBar VerticalAlignment="Bottom" Foreground="Red" Name="seekIndicator" Visibility="Collapsed"/>
|
<ProgressBar VerticalAlignment="Bottom" Foreground="Red" Name="seekIndicator" Visibility="Collapsed"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
@@ -83,19 +110,37 @@
|
|||||||
<ColumnDefinition Width="auto"/>
|
<ColumnDefinition Width="auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Button Click="play_Click" Name="play" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Play"/>
|
<Button Click="play_Click" Name="play" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
<Button Name="next" Click="next_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Next video"/>
|
<ToolTipService.ToolTip>
|
||||||
<Button Name="openVolume" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Volume">
|
<TextBlock x:Uid="/VideoPage/play"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Name="next" Click="next_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/next"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Name="openVolume" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/volume"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
<Flyout>
|
<Flyout>
|
||||||
<StackPanel Orientation="Horizontal" Margin="-10">
|
<StackPanel Orientation="Horizontal" Margin="-10">
|
||||||
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Mute" Name="muteBtn" Click="muteBtn_Click"/>
|
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" Name="muteBtn" Click="muteBtn_Click">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/mute"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
<Slider Orientation="Horizontal" Width="150" Margin="10,5,10,0" VerticalAlignment="Center" Name="volume" ValueChanged="volume_ValueChanged"/>
|
<Slider Orientation="Horizontal" Width="150" Margin="10,5,10,0" VerticalAlignment="Center" Name="volume" ValueChanged="volume_ValueChanged"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Flyout>
|
</Flyout>
|
||||||
</Button.Flyout>
|
</Button.Flyout>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Name="gotoLive" Visibility="Collapsed" Click="GotoLive_Click" Background="Transparent" Foreground="White" Height="50" FontSize="25" ToolTipService.ToolTip="Go to live broadcast">
|
<Button Name="gotoLive" Visibility="Collapsed" Click="GotoLive_Click" Background="Transparent" Foreground="White" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/goLive"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<FontIcon Glyph="" Foreground="Red"/>
|
<FontIcon Glyph="" Foreground="Red"/>
|
||||||
<TextBlock Text="Live" Margin="5,0,0,0" FontSize="15" VerticalAlignment="Center"/>
|
<TextBlock Text="Live" Margin="5,0,0,0" FontSize="15" VerticalAlignment="Center"/>
|
||||||
@@ -104,41 +149,63 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid Grid.Column="1" Name="seekPanel">
|
<Grid Grid.Column="1" Name="seekPanel">
|
||||||
<TextBlock Name="elapsedTime" Foreground="White" Text="[Elapsed]" VerticalAlignment="Bottom" HorizontalAlignment="Left" ToolTipService.ToolTip="Time elapsed"/>
|
<TextBlock Name="elapsedTime" Foreground="White" Text="[Elapsed]" VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
|
||||||
<TextBlock Name="remainingTime" Foreground="White" Text="[Remaining]" VerticalAlignment="Bottom" HorizontalAlignment="Right" ToolTipService.ToolTip="Time remaining"/>
|
<TextBlock Name="remainingTime" Foreground="White" Text="[Remaining]" VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
|
||||||
<Grid VerticalAlignment="Top" Margin="0,15,0,0" Height="2">
|
<Grid VerticalAlignment="Top" Margin="0,15,0,0" Height="2">
|
||||||
<ProgressBar Background="#66FFFFFF" Foreground="LightGray" Name="bufferingLevel"/>
|
<ProgressBar Background="#66FFFFFF" Foreground="LightGray" Name="bufferingLevel"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Slider PointerCaptureLost="seek_PointerCaptureLost" ValueChanged="seek_ValueChanged" Name="seek" VerticalAlignment="Top" ToolTipService.ToolTip="Seek" IsThumbToolTipEnabled="False" Background="Transparent" HorizontalAlignment="Stretch"/>
|
<Slider PointerCaptureLost="seek_PointerCaptureLost" ValueChanged="seek_ValueChanged" Name="seek" VerticalAlignment="Top" IsThumbToolTipEnabled="False" Background="Transparent" HorizontalAlignment="Stretch"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal">
|
<StackPanel Grid.Column="2" Orientation="Horizontal">
|
||||||
<TextBlock Text="1:12:32" Name="liveElapsed" Visibility="Collapsed" Margin="10,0" FontSize="20" VerticalAlignment="Center" ToolTipService.ToolTip="Elapsed time since stream start"/>
|
<TextBlock Text="1:12:32" Name="liveElapsed" Visibility="Collapsed" Margin="10,0" FontSize="20" VerticalAlignment="Center">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/streamElapsed"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</TextBlock>
|
||||||
<StackPanel Orientation="Horizontal" Name="rewindPanel">
|
<StackPanel Orientation="Horizontal" Name="rewindPanel">
|
||||||
<Button Click="back10_Click" Name="back10" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Skip back for 10 seconds"/>
|
<Button Click="back10_Click" Name="back10" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
<Button Click="fwd30_Click" Name="fwd30" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Skip forward for 30 seconds"/>
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/back"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
|
<Button Click="fwd30_Click" Name="fwd30" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/fwd"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Line Stroke="White" StrokeThickness="2" Y1="5" Y2="45"/>
|
<Line Stroke="White" StrokeThickness="2" Y1="5" Y2="45"/>
|
||||||
|
|
||||||
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Subtitles" Name="captionsBtn">
|
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" Name="captionsBtn">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/subs"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
<Flyout>
|
<Flyout>
|
||||||
<StackPanel Width="225">
|
<StackPanel Width="225">
|
||||||
<ToggleSwitch Name="subsSwitch" Toggled="subsSwitch_Toggled" OnContent="Subtitles" OffContent="Subtitles"/>
|
<ToggleSwitch x:Uid="/VideoPage/subsSwitch" Name="subsSwitch" Toggled="subsSwitch_Toggled" OnContent="Subtitles" OffContent="Subtitles"/>
|
||||||
<ComboBox Name="subsLang" Header="Language" PlaceholderText="No subtitles are available" Visibility="Collapsed" HorizontalAlignment="Stretch" SelectionChanged="subsLang_SelectionChanged"/>
|
<ComboBox x:Uid="/VideoPage/subsSelector" Name="subsLang" Header="Language" PlaceholderText="No subtitles are available" Visibility="Collapsed" HorizontalAlignment="Stretch" SelectionChanged="subsLang_SelectionChanged"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Flyout>
|
</Flyout>
|
||||||
</Button.Flyout>
|
</Button.Flyout>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Name="qualityBtn" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Video quality">
|
<Button Name="qualityBtn" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/quality"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
<Flyout>
|
<Flyout>
|
||||||
<ComboBox Width="225" Header="Quality" Name="quality" SelectionChanged="quality_SelectionChanged"/>
|
<ComboBox x:Uid="/VideoPage/qualitySelector" Width="225" Header="Quality" Name="quality" SelectionChanged="quality_SelectionChanged"/>
|
||||||
</Flyout>
|
</Flyout>
|
||||||
</Button.Flyout>
|
</Button.Flyout>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Full screen" Name="fullscreen" Click="fullscreen_Click"/>
|
<Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="" Foreground="White" Width="50" Height="50" FontSize="25" Name="fullscreen" Click="fullscreen_Click">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock x:Uid="/VideoPage/fullscreen"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ namespace FoxTube
|
|||||||
controller = new MediaTimelineController();
|
controller = new MediaTimelineController();
|
||||||
|
|
||||||
videoPlayer.TimelineController = controller;
|
videoPlayer.TimelineController = controller;
|
||||||
controller.PositionChanged += UpdateSeek;
|
|
||||||
videoSource.SetMediaPlayer(videoPlayer);
|
videoSource.SetMediaPlayer(videoPlayer);
|
||||||
videoPlayer.MediaOpened += async (s, e) =>
|
videoPlayer.MediaOpened += async (s, e) =>
|
||||||
{
|
{
|
||||||
@@ -130,6 +129,7 @@ namespace FoxTube
|
|||||||
controller.Position = TimeSpan.FromSeconds(timecodeBackup);
|
controller.Position = TimeSpan.FromSeconds(timecodeBackup);
|
||||||
needUpdateTimecode = false;
|
needUpdateTimecode = false;
|
||||||
controller.Resume();
|
controller.Resume();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
seek.IsEnabled = true;
|
seek.IsEnabled = true;
|
||||||
@@ -224,6 +224,7 @@ namespace FoxTube
|
|||||||
InitializeContols();
|
InitializeContols();
|
||||||
captions = grid.Children[2] as LiveCaptions;
|
captions = grid.Children[2] as LiveCaptions;
|
||||||
captions.Player = controller;
|
captions.Player = controller;
|
||||||
|
controller.PositionChanged += UpdateSeek;
|
||||||
|
|
||||||
Total = XmlConvert.ToTimeSpan(item.ContentDetails.Duration);
|
Total = XmlConvert.ToTimeSpan(item.ContentDetails.Duration);
|
||||||
seek.Maximum = Total.TotalMilliseconds;
|
seek.Maximum = Total.TotalMilliseconds;
|
||||||
@@ -287,11 +288,15 @@ namespace FoxTube
|
|||||||
|
|
||||||
public async void UpdateSeek(MediaTimelineController sender, object e)
|
public async void UpdateSeek(MediaTimelineController sender, object e)
|
||||||
{
|
{
|
||||||
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
try
|
||||||
{
|
{
|
||||||
seek.Value = controller.Position.TotalMilliseconds;
|
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||||
seekIndicator.Value = seek.Value;
|
{
|
||||||
});
|
seek.Value = controller.Position.TotalMilliseconds;
|
||||||
|
seekIndicator.Value = seek.Value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void SystemControls_Engaged(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs args)
|
private async void SystemControls_Engaged(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs args)
|
||||||
@@ -450,6 +455,8 @@ namespace FoxTube
|
|||||||
if (streamInfo.Muxed.ToList().Exists(x => x.VideoQualityLabel == (quality.SelectedItem as ComboBoxItem).Content.ToString()))
|
if (streamInfo.Muxed.ToList().Exists(x => x.VideoQualityLabel == (quality.SelectedItem as ComboBoxItem).Content.ToString()))
|
||||||
{
|
{
|
||||||
videoPlayer.Source = MediaSource.CreateFromUri(streamInfo.Muxed.Find(x => x.VideoQualityLabel == (quality.SelectedItem as ComboBoxItem).Content as string).Url.ToUri());
|
videoPlayer.Source = MediaSource.CreateFromUri(streamInfo.Muxed.Find(x => x.VideoQualityLabel == (quality.SelectedItem as ComboBoxItem).Content as string).Url.ToUri());
|
||||||
|
|
||||||
|
audioPlayer?.Dispose();
|
||||||
audioPlayer = null;
|
audioPlayer = null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -719,10 +726,8 @@ namespace FoxTube
|
|||||||
pointerCaptured = false;
|
pointerCaptured = false;
|
||||||
|
|
||||||
controller.Pause();
|
controller.Pause();
|
||||||
videoPlayer.Dispose();
|
|
||||||
audioPlayer?.Dispose();
|
|
||||||
|
|
||||||
ctrlsFadeTimer.Stop();
|
ctrlsFadeTimer?.Stop();
|
||||||
timer?.Stop();
|
timer?.Stop();
|
||||||
|
|
||||||
Methods.MainPage.CloseVideo();
|
Methods.MainPage.CloseVideo();
|
||||||
|
|||||||
@@ -17,8 +17,9 @@
|
|||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
|
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
|
||||||
<PackageCertificateKeyFile>FoxTube_TemporaryKey.pfx</PackageCertificateKeyFile>
|
<PackageCertificateKeyFile>
|
||||||
<PackageCertificateThumbprint>E33236F6F6066A373DFA92A7B7C1467B1EF0BA81</PackageCertificateThumbprint>
|
</PackageCertificateKeyFile>
|
||||||
|
<PackageCertificateThumbprint>E888C12EC9A02B902D03CDA4515BDBE9F5E71F1F</PackageCertificateThumbprint>
|
||||||
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
||||||
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
|
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
|
||||||
<AppxPackageDir>C:\Users\Michael Gordeev\Downloads\FoxTube dists\0.2.1812-2\</AppxPackageDir>
|
<AppxPackageDir>C:\Users\Michael Gordeev\Downloads\FoxTube dists\0.2.1812-2\</AppxPackageDir>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
</Resources>
|
</Resources>
|
||||||
<Applications>
|
<Applications>
|
||||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="FoxTube.App" ResourceGroup="foxtube">
|
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="FoxTube.App" ResourceGroup="foxtube">
|
||||||
<uap:VisualElements DisplayName="FoxTube" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="YouTube Client" BackgroundColor="transparent">
|
<uap:VisualElements DisplayName="FoxTube" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="YouTube Client" BackgroundColor="skyBlue">
|
||||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="FoxTube" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png">
|
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="FoxTube" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png">
|
||||||
<uap:ShowNameOnTiles>
|
<uap:ShowNameOnTiles>
|
||||||
<uap:ShowOn Tile="square150x150Logo" />
|
<uap:ShowOn Tile="square150x150Logo" />
|
||||||
|
|||||||
@@ -466,18 +466,13 @@ namespace FoxTube
|
|||||||
if(videoPlaceholder.Content == null)
|
if(videoPlaceholder.Content == null)
|
||||||
nav.ExpandedModeThresholdWidth = 1008;
|
nav.ExpandedModeThresholdWidth = 1008;
|
||||||
nav.Margin = new Thickness(0);
|
nav.Margin = new Thickness(0);
|
||||||
|
nav.OpenPaneLength = 300;
|
||||||
|
nav.CompactPaneLength = 40;
|
||||||
if (videoPlaceholder.Content != null && nav.IsPaneOpen)
|
if (videoPlaceholder.Content != null && nav.IsPaneOpen)
|
||||||
{
|
|
||||||
nav.IsPaneOpen = true;
|
|
||||||
nav.IsPaneOpen = false;
|
nav.IsPaneOpen = false;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nav.OpenPaneLength = 300;
|
|
||||||
nav.CompactPaneLength = 40;
|
|
||||||
}
|
|
||||||
SetTitleBar();
|
SetTitleBar();
|
||||||
}
|
}
|
||||||
|
nav.UpdateLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CloseVideo()
|
public void CloseVideo()
|
||||||
@@ -488,6 +483,7 @@ namespace FoxTube
|
|||||||
Fullscreen(false);
|
Fullscreen(false);
|
||||||
}
|
}
|
||||||
videoPlaceholder.Content = null;
|
videoPlaceholder.Content = null;
|
||||||
|
GC.Collect();
|
||||||
Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Arrow, 0);
|
Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Arrow, 0);
|
||||||
MaximizeVideo();
|
MaximizeVideo();
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<TextBlock Visibility="Collapsed" 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 Visibility="Collapsed" 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="/About/legal" Text="Legal stuff" FontSize="22" FontWeight="SemiBold"/>
|
<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/ourPrivacy" Content="Our Privacy Policy" NavigateUri="https://foxgame-studio.000webhostapp.com/FoxTubeAssets/PrivacyPolicy.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/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/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"/>
|
<HyperlinkButton x:Uid="/About/guides" Content="YouTube Community Guidelines" NavigateUri="https://youtube.com/t/community_guidelines" Padding="0,0,0,10"/>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using System.Globalization;
|
using System.Linq;
|
||||||
using System.Linq;
|
|
||||||
using Windows.ApplicationModel.Core;
|
using Windows.ApplicationModel.Core;
|
||||||
using Windows.UI;
|
using Windows.UI;
|
||||||
using Windows.UI.Xaml;
|
using Windows.UI.Xaml;
|
||||||
|
|||||||
@@ -33,15 +33,15 @@ namespace FoxTube.Pages.SettingsPages
|
|||||||
foreach (XmlElement e in doc["items"].ChildNodes)
|
foreach (XmlElement e in doc["items"].ChildNodes)
|
||||||
items.Add(new InboxItem(
|
items.Add(new InboxItem(
|
||||||
e.GetAttribute("version"),
|
e.GetAttribute("version"),
|
||||||
e["content"].InnerText,
|
e["content"][SettingsStorage.Language].InnerText,
|
||||||
e.GetAttribute("time")));
|
e.GetAttribute("time")));
|
||||||
|
|
||||||
doc.Load("http://foxgame-studio.000webhostapp.com/foxtube-messages.xml");
|
doc.Load("http://foxgame-studio.000webhostapp.com/foxtube-messages.xml");
|
||||||
foreach (XmlElement e in doc["posts"].ChildNodes)
|
foreach (XmlElement e in doc["posts"].ChildNodes)
|
||||||
items.Add(new InboxItem(
|
items.Add(new InboxItem(
|
||||||
e["header"].InnerText,
|
e["header"].InnerText,
|
||||||
e["content"].InnerText,
|
e["content"][SettingsStorage.Language].InnerText,
|
||||||
DateTime.Parse(e["time"].InnerText),
|
DateTime.Parse(e.GetAttribute("time")),
|
||||||
e["id"].InnerText
|
e["id"].InnerText
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|||||||
@@ -120,16 +120,16 @@
|
|||||||
<data name="box.PlaceholderText" xml:space="preserve">
|
<data name="box.PlaceholderText" xml:space="preserve">
|
||||||
<value>Send a message</value>
|
<value>Send a message</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="moder" xml:space="preserve">
|
<data name="moder.Text" xml:space="preserve">
|
||||||
<value>Moderator</value>
|
<value>Moderator</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="owner" xml:space="preserve">
|
<data name="owner.Text" xml:space="preserve">
|
||||||
<value>Chat owner</value>
|
<value>Chat owner</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="sponsor" xml:space="preserve">
|
<data name="sponsor.Text" xml:space="preserve">
|
||||||
<value>Sponsor</value>
|
<value>Sponsor</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="verified" xml:space="preserve">
|
<data name="verified.Text" xml:space="preserve">
|
||||||
<value>Verified</value>
|
<value>Verified</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="welcome.Text" xml:space="preserve">
|
<data name="welcome.Text" xml:space="preserve">
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
<data name="ext" xml:space="preserve">
|
<data name="ext" xml:space="preserve">
|
||||||
<value>Extension</value>
|
<value>Extension</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gotoOrign.Content" xml:space="preserve">
|
<data name="gotoOrign.Text" xml:space="preserve">
|
||||||
<value>Go to original</value>
|
<value>Go to original</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="no" xml:space="preserve">
|
<data name="no" xml:space="preserve">
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
<data name="noItems.Text" xml:space="preserve">
|
<data name="noItems.Text" xml:space="preserve">
|
||||||
<value>You haven't downloaded anything yet</value>
|
<value>You haven't downloaded anything yet</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="openFile.Content" xml:space="preserve">
|
<data name="openFile.Text" xml:space="preserve">
|
||||||
<value>Open</value>
|
<value>Open</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="openFolder.Content" xml:space="preserve">
|
<data name="openFolder.Content" xml:space="preserve">
|
||||||
|
|||||||
@@ -153,9 +153,6 @@
|
|||||||
<data name="metered" xml:space="preserve">
|
<data name="metered" xml:space="preserve">
|
||||||
<value>"You are on metered connection now. Additional charges may apply. Do you want to continue?"</value>
|
<value>"You are on metered connection now. Additional charges may apply. Do you want to continue?"</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="myAccount.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
|
||||||
<value>My account</value>
|
|
||||||
</data>
|
|
||||||
<data name="myChannel.Content" xml:space="preserve">
|
<data name="myChannel.Content" xml:space="preserve">
|
||||||
<value>My channel</value>
|
<value>My channel</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -168,9 +165,6 @@
|
|||||||
<data name="no" xml:space="preserve">
|
<data name="no" xml:space="preserve">
|
||||||
<value>No</value>
|
<value>No</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="notifications.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
|
||||||
<value>Notifications</value>
|
|
||||||
</data>
|
|
||||||
<data name="playlist" xml:space="preserve">
|
<data name="playlist" xml:space="preserve">
|
||||||
<value>Playlist</value>
|
<value>Playlist</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -186,9 +180,6 @@
|
|||||||
<data name="signEx.Text" xml:space="preserve">
|
<data name="signEx.Text" xml:space="preserve">
|
||||||
<value>Sign in with existing account</value>
|
<value>Sign in with existing account</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="signIn.[using:Windows.UI.Xaml.Controls]ToolTipService.ToolTip" xml:space="preserve">
|
|
||||||
<value>Sign in</value>
|
|
||||||
</data>
|
|
||||||
<data name="signNew.Text" xml:space="preserve">
|
<data name="signNew.Text" xml:space="preserve">
|
||||||
<value>Create new Google account</value>
|
<value>Create new Google account</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -126,9 +126,18 @@
|
|||||||
<data name="audioOnly" xml:space="preserve">
|
<data name="audioOnly" xml:space="preserve">
|
||||||
<value>Audio only</value>
|
<value>Audio only</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="back.Text" xml:space="preserve">
|
||||||
|
<value>Go back for 10 seconds</value>
|
||||||
|
</data>
|
||||||
|
<data name="cast.Text" xml:space="preserve">
|
||||||
|
<value>Cast to device</value>
|
||||||
|
</data>
|
||||||
<data name="chat" xml:space="preserve">
|
<data name="chat" xml:space="preserve">
|
||||||
<value>Chat</value>
|
<value>Chat</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="close.Text" xml:space="preserve">
|
||||||
|
<value>Close video</value>
|
||||||
|
</data>
|
||||||
<data name="comments.Header" xml:space="preserve">
|
<data name="comments.Header" xml:space="preserve">
|
||||||
<value>Comments</value>
|
<value>Comments</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -138,12 +147,48 @@
|
|||||||
<data name="download.Label" xml:space="preserve">
|
<data name="download.Label" xml:space="preserve">
|
||||||
<value>Download video</value>
|
<value>Download video</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="exitminiview.Text" xml:space="preserve">
|
||||||
|
<value>Exit compact view mode</value>
|
||||||
|
</data>
|
||||||
|
<data name="fullscreen.Text" xml:space="preserve">
|
||||||
|
<value>Full screen</value>
|
||||||
|
</data>
|
||||||
|
<data name="fwd.Text" xml:space="preserve">
|
||||||
|
<value>Skip forward for 30 seconds</value>
|
||||||
|
</data>
|
||||||
|
<data name="goLive.Text" xml:space="preserve">
|
||||||
|
<value>Go to live broadcast</value>
|
||||||
|
</data>
|
||||||
|
<data name="maximize.Text" xml:space="preserve">
|
||||||
|
<value>Maximize</value>
|
||||||
|
</data>
|
||||||
|
<data name="minimize.Text" xml:space="preserve">
|
||||||
|
<value>Minimize</value>
|
||||||
|
</data>
|
||||||
|
<data name="miniview.Text" xml:space="preserve">
|
||||||
|
<value>Compact view mode</value>
|
||||||
|
</data>
|
||||||
|
<data name="mute.Text" xml:space="preserve">
|
||||||
|
<value>Mute</value>
|
||||||
|
</data>
|
||||||
|
<data name="next.Text" xml:space="preserve">
|
||||||
|
<value>Next video</value>
|
||||||
|
</data>
|
||||||
<data name="openWeb.Label" xml:space="preserve">
|
<data name="openWeb.Label" xml:space="preserve">
|
||||||
<value>Open in browser</value>
|
<value>Open in browser</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="play.Text" xml:space="preserve">
|
||||||
|
<value>Play / Pause</value>
|
||||||
|
</data>
|
||||||
<data name="playlist.Header" xml:space="preserve">
|
<data name="playlist.Header" xml:space="preserve">
|
||||||
<value>Playlist</value>
|
<value>Playlist</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="quality.Text" xml:space="preserve">
|
||||||
|
<value>Video quality</value>
|
||||||
|
</data>
|
||||||
|
<data name="qualitySelector.Header" xml:space="preserve">
|
||||||
|
<value>Quality</value>
|
||||||
|
</data>
|
||||||
<data name="refresh.Label" xml:space="preserve">
|
<data name="refresh.Label" xml:space="preserve">
|
||||||
<value>Refresh page</value>
|
<value>Refresh page</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -153,4 +198,22 @@
|
|||||||
<data name="share.Label" xml:space="preserve">
|
<data name="share.Label" xml:space="preserve">
|
||||||
<value>Share</value>
|
<value>Share</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="streamElapsed.Text" xml:space="preserve">
|
||||||
|
<value>Elapsed time since stream start</value>
|
||||||
|
</data>
|
||||||
|
<data name="subs.Text" xml:space="preserve">
|
||||||
|
<value>Captions</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSelector.PlaceholderText" xml:space="preserve">
|
||||||
|
<value>No captions are available</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSwitch.OffContent" xml:space="preserve">
|
||||||
|
<value>Captions</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSwitch.OnContent" xml:space="preserve">
|
||||||
|
<value>Captions</value>
|
||||||
|
</data>
|
||||||
|
<data name="volume.Text" xml:space="preserve">
|
||||||
|
<value>Volume</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -120,16 +120,16 @@
|
|||||||
<data name="box.PlaceholderText" xml:space="preserve">
|
<data name="box.PlaceholderText" xml:space="preserve">
|
||||||
<value>Отправить сообщение</value>
|
<value>Отправить сообщение</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="moder" xml:space="preserve">
|
<data name="moder.Text" xml:space="preserve">
|
||||||
<value>Модератор</value>
|
<value>Модератор</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="owner" xml:space="preserve">
|
<data name="owner.Text" xml:space="preserve">
|
||||||
<value>Владелец чата</value>
|
<value>Владелец чата</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="sponsor" xml:space="preserve">
|
<data name="sponsor.Text" xml:space="preserve">
|
||||||
<value>Спонсор</value>
|
<value>Спонсор</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="verified" xml:space="preserve">
|
<data name="verified.Text" xml:space="preserve">
|
||||||
<value>Подтвержден</value>
|
<value>Подтвержден</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="welcome.Text" xml:space="preserve">
|
<data name="welcome.Text" xml:space="preserve">
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
<data name="ext" xml:space="preserve">
|
<data name="ext" xml:space="preserve">
|
||||||
<value>Расширение</value>
|
<value>Расширение</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gotoOrign.Content" xml:space="preserve">
|
<data name="gotoOrign.Text" xml:space="preserve">
|
||||||
<value>Открыть оригинал</value>
|
<value>Открыть оригинал</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="no" xml:space="preserve">
|
<data name="no" xml:space="preserve">
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
<data name="noItems.Text" xml:space="preserve">
|
<data name="noItems.Text" xml:space="preserve">
|
||||||
<value>Вы еще ничего не скачивали</value>
|
<value>Вы еще ничего не скачивали</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="openFile.Content" xml:space="preserve">
|
<data name="openFile.Text" xml:space="preserve">
|
||||||
<value>Открыть</value>
|
<value>Открыть</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="openFolder.Content" xml:space="preserve">
|
<data name="openFolder.Content" xml:space="preserve">
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<value>Загрузка завершена</value>
|
<value>Загрузка завершена</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toastStartHeader" xml:space="preserve">
|
<data name="toastStartHeader" xml:space="preserve">
|
||||||
<value>Загрузка виде</value>
|
<value>Загрузка видео</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="yes" xml:space="preserve">
|
<data name="yes" xml:space="preserve">
|
||||||
<value>Да</value>
|
<value>Да</value>
|
||||||
|
|||||||
@@ -126,9 +126,18 @@
|
|||||||
<data name="audioOnly" xml:space="preserve">
|
<data name="audioOnly" xml:space="preserve">
|
||||||
<value>Аудио дорожка</value>
|
<value>Аудио дорожка</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="back.Text" xml:space="preserve">
|
||||||
|
<value>Назад на 10 секунд</value>
|
||||||
|
</data>
|
||||||
|
<data name="cast.Text" xml:space="preserve">
|
||||||
|
<value>Отправить на устройство</value>
|
||||||
|
</data>
|
||||||
<data name="chat" xml:space="preserve">
|
<data name="chat" xml:space="preserve">
|
||||||
<value>Чат</value>
|
<value>Чат</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="close.Text" xml:space="preserve">
|
||||||
|
<value>Закрыть видео</value>
|
||||||
|
</data>
|
||||||
<data name="comments.Header" xml:space="preserve">
|
<data name="comments.Header" xml:space="preserve">
|
||||||
<value>Комментарии</value>
|
<value>Комментарии</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -138,12 +147,48 @@
|
|||||||
<data name="download.Label" xml:space="preserve">
|
<data name="download.Label" xml:space="preserve">
|
||||||
<value>Скачать видео</value>
|
<value>Скачать видео</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="exitminiview.Text" xml:space="preserve">
|
||||||
|
<value>Развернуть</value>
|
||||||
|
</data>
|
||||||
|
<data name="fullscreen.Text" xml:space="preserve">
|
||||||
|
<value>Полный экран</value>
|
||||||
|
</data>
|
||||||
|
<data name="fwd.Text" xml:space="preserve">
|
||||||
|
<value>Вперед на 30 секунд</value>
|
||||||
|
</data>
|
||||||
|
<data name="goLive.Text" xml:space="preserve">
|
||||||
|
<value>Перейти к прямому эфиру</value>
|
||||||
|
</data>
|
||||||
|
<data name="maximize.Text" xml:space="preserve">
|
||||||
|
<value>Развернуть</value>
|
||||||
|
</data>
|
||||||
|
<data name="minimize.Text" xml:space="preserve">
|
||||||
|
<value>Свернуть</value>
|
||||||
|
</data>
|
||||||
|
<data name="miniview.Text" xml:space="preserve">
|
||||||
|
<value>Картинка в картинке</value>
|
||||||
|
</data>
|
||||||
|
<data name="mute.Text" xml:space="preserve">
|
||||||
|
<value>Выключить звук</value>
|
||||||
|
</data>
|
||||||
|
<data name="next.Text" xml:space="preserve">
|
||||||
|
<value>Следующее видео</value>
|
||||||
|
</data>
|
||||||
<data name="openWeb.Label" xml:space="preserve">
|
<data name="openWeb.Label" xml:space="preserve">
|
||||||
<value>Открыть в браузере</value>
|
<value>Открыть в браузере</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="play.Text" xml:space="preserve">
|
||||||
|
<value>Воспроизвести / Пауза</value>
|
||||||
|
</data>
|
||||||
<data name="playlist.Header" xml:space="preserve">
|
<data name="playlist.Header" xml:space="preserve">
|
||||||
<value>Плейлист</value>
|
<value>Плейлист</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="quality.Text" xml:space="preserve">
|
||||||
|
<value>Качество видео</value>
|
||||||
|
</data>
|
||||||
|
<data name="qualitySelector.Header" xml:space="preserve">
|
||||||
|
<value>Качество</value>
|
||||||
|
</data>
|
||||||
<data name="refresh.Label" xml:space="preserve">
|
<data name="refresh.Label" xml:space="preserve">
|
||||||
<value>Обновить страницу</value>
|
<value>Обновить страницу</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -153,4 +198,22 @@
|
|||||||
<data name="share.Label" xml:space="preserve">
|
<data name="share.Label" xml:space="preserve">
|
||||||
<value>Поделиться</value>
|
<value>Поделиться</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="streamElapsed.Text" xml:space="preserve">
|
||||||
|
<value>Время, прошедшее с начала стрима</value>
|
||||||
|
</data>
|
||||||
|
<data name="subs.Text" xml:space="preserve">
|
||||||
|
<value>Субтитры</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSelector.PlaceholderText" xml:space="preserve">
|
||||||
|
<value>Нет доступных субтитров</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSwitch.OffContent" xml:space="preserve">
|
||||||
|
<value>Субтитры</value>
|
||||||
|
</data>
|
||||||
|
<data name="subsSwitch.OnContent" xml:space="preserve">
|
||||||
|
<value>Субтитры</value>
|
||||||
|
</data>
|
||||||
|
<data name="volume.Text" xml:space="preserve">
|
||||||
|
<value>Громкость</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||