Archived
1
0

Player fixes. Localization updates. Tiles updated

Related Work Items: #161
This commit is contained in:
Michael Gordeev
2019-01-03 20:05:53 +03:00
parent 088d85ddb9
commit 16c79dae0c
35 changed files with 320 additions and 87 deletions
@@ -140,6 +140,9 @@
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' "> <PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '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.
+38 -3
View File
@@ -1,8 +1,35 @@
<?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">
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

+20 -4
View File
@@ -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="&#xEC61;" ToolTipService.ToolTip="{Binding Path=verified}" Margin="2,0" Visibility="{Binding Path=IsVerified}"/> <FontIcon Glyph="&#xEC61;" Margin="2,0" Visibility="{Binding Path=IsVerified}">
<FontIcon Glyph="&#xEC1B;" ToolTipService.ToolTip="{Binding Path=moderator}" Margin="2,0" Visibility="{Binding Path=IsModerator}"/> <ToolTipService.ToolTip>
<FontIcon Glyph="&#xECA7;" ToolTipService.ToolTip="{Binding Path=owner}" Margin="2,0" Visibility="{Binding Path=IsOwner}"/> <TextBlock x:Uid="/Chat/verified"/>
<FontIcon Glyph="&#xE735;" ToolTipService.ToolTip="{Binding Path=sponsor}" Margin="2,0" Visibility="{Binding Path=IsSponsor}"/> </ToolTipService.ToolTip>
</FontIcon>
<FontIcon Glyph="&#xEC1B;" Margin="2,0" Visibility="{Binding Path=IsModerator}">
<ToolTipService.ToolTip>
<TextBlock x:Uid="/Chat/moder"/>
</ToolTipService.ToolTip>
</FontIcon>
<FontIcon Glyph="&#xECA7;" Margin="2,0" Visibility="{Binding Path=IsOwner}">
<ToolTipService.ToolTip>
<TextBlock x:Uid="/Chat/owner"/>
</ToolTipService.ToolTip>
</FontIcon>
<FontIcon Glyph="&#xE735;" 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"/>
-6
View File
@@ -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
+1 -1
View File
@@ -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>
+93 -26
View File
@@ -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="&#xE011;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Minimize"/> <Button Click="minimize_Click" Name="minimize" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE011;" 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="&#xE10A;" 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="&#xE10A;" Foreground="White" Width="50" Height="50" FontSize="25">
<Button Name="cast" Click="cast_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xEC15;" 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="&#xE2B3;" 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="&#xEC15;" 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="&#xE2B3;" 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="&#xE102;" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="100" Foreground="WhiteSmoke" Name="touchPlay" Click="play_Click"/> <Button VerticalAlignment="Center" Content="&#xE102;" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="100" Foreground="WhiteSmoke" Name="touchPlay" Click="play_Click"/>
<Button VerticalAlignment="Center" Content="&#xED3D;" FontFamily="Segoe MDL2 Assets" Background="Transparent" FontSize="40" Foreground="WhiteSmoke" Name="touchFwd30" Click="fwd30_Click"/> <Button VerticalAlignment="Center" Content="&#xED3D;" 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="&#xE2B4;" 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="&#xE2B4;" 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="&#xE10A;" 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="&#xE10A;" 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="&#xE010;" Content="&#xE010;"
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="&#xE768;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Play"/> <Button Click="play_Click" Name="play" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE768;" Foreground="White" Width="50" Height="50" FontSize="25">
<Button Name="next" Click="next_Click" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE101;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Next video"/> <ToolTipService.ToolTip>
<Button Name="openVolume" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE995;" 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="&#xE101;" 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="&#xE995;" 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="&#xE995;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Mute" Name="muteBtn" Click="muteBtn_Click"/> <Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE995;" 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="&#xE91F;" Foreground="Red"/> <FontIcon Glyph="&#xE91F;" 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="&#xED3C;" 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="&#xED3C;" Foreground="White" Width="50" Height="50" FontSize="25">
<Button Click="fwd30_Click" Name="fwd30" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xED3D;" 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="&#xED3D;" 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="&#xE190;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Subtitles" Name="captionsBtn"> <Button Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE190;" 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="&#xE713;" Foreground="White" Width="50" Height="50" FontSize="25" ToolTipService.ToolTip="Video quality"> <Button Name="qualityBtn" Background="Transparent" FontFamily="Segoe MDL2 Assets" Content="&#xE713;" 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="&#xE740;" 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="&#xE740;" 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>
+13 -8
View File
@@ -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();
+3 -2
View File
@@ -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>
+1 -1
View File
@@ -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" />
+4 -8
View File
@@ -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();
+1 -1
View File
@@ -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 -2
View File
@@ -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;
+3 -3
View File
@@ -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
)); ));
+4 -4
View File
@@ -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">
+2 -2
View File
@@ -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">
-9
View File
@@ -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>
+63
View File
@@ -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>
+4 -4
View File
@@ -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">
+3 -3
View File
@@ -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>
+63
View File
@@ -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>