Browse Source

improve resource organization

pull/2810/head
Jason Dove 6 months ago
parent
commit
5686eb1c6e
No known key found for this signature in database
  1. 13
      ErsatzTV/ErsatzTV.csproj
  2. 35
      ErsatzTV/Locals/Resources.pt-br.resx
  3. 21
      ErsatzTV/Locals/Resources.resx
  4. 414
      ErsatzTV/Locals/Shared/MainLayout.Designer.cs
  5. 59
      ErsatzTV/Locals/Shared/MainLayout.pt-br.resx
  6. 204
      ErsatzTV/Locals/Shared/MainLayout.resx
  7. 136
      ErsatzTV/Shared/MainLayout.razor

13
ErsatzTV/ErsatzTV.csproj

@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
<AnalysisLevel>latest-Recommended</AnalysisLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<RequiresAspNetWebAssets>true</RequiresAspNetWebAssets>
<NeutralLanguage>en-US</NeutralLanguage>
</PropertyGroup>
<PropertyGroup>
@ -106,6 +107,10 @@ @@ -106,6 +107,10 @@
<EmbeddedResource Include="Resources\empty.sqlite3" />
<EmbeddedResource Include="Resources\test.avs" />
<EmbeddedResource Include="Resources\Templates\_remoteStream.sbntxt" />
<EmbeddedResource Update="Locals\Shared\MainLayout.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>MainLayout.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
@ -127,6 +132,14 @@ @@ -127,6 +132,14 @@
<_ContentIncludedByDefault Remove="wwwroot\css\open-iconic\README.md" />
</ItemGroup>
<ItemGroup>
<Compile Update="Locals\Shared\MainLayout.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>MainLayout.resx</DependentUpon>
</Compile>
</ItemGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties client-app_4package_1json__JsonSchema="https://json.schemastore.org/phraseapp.json" />

35
ErsatzTV/Locals/Resources.pt-br.resx

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ButtonMainMenuChannels" xml:space="preserve">
<value>Canais</value>
</data>
<data name="ButtonMainMenuFFmpegProfiles" xml:space="preserve">
<value>Perfis FFmpeg</value>
</data>
<data name="ButtonMainMenuWatermarks" xml:space="preserve">
<value>Marcas d'água</value>
</data>
<data name="ButtonMainMenuMediaSources" xml:space="preserve">
<value>Fontes de mídia</value>
</data>
<data name="ButtonMainMenuMedia" xml:space="preserve">
<value>Mídias</value>
</data>
<data name="ButtonMainMenuLists" xml:space="preserve">
<value>Listas</value>
</data>
<data name="ButtonMainMenuSettings" xml:space="preserve">
<value>Definições</value>
</data>
</root>

21
ErsatzTV/Locals/Resources.resx

@ -1,24 +1,3 @@ @@ -1,24 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="ButtonMainMenuChannels" xml:space="preserve">
<value>Channels</value>
</data>
<data name="ButtonMainMenuFFmpegProfiles" xml:space="preserve">
<value>FFmpeg Profiles</value>
</data>
<data name="ButtonMainMenuWatermarks" xml:space="preserve">
<value>Watermarks</value>
</data>
<data name="ButtonMainMenuMediaSources" xml:space="preserve">
<value>Media Sources</value>
</data>
<data name="ButtonMainMenuMedia" xml:space="preserve">
<value>Media</value>
</data>
<data name="ButtonMainMenuLists" xml:space="preserve">
<value>Lists</value>
</data>
<data name="ButtonMainMenuSettings" xml:space="preserve">
<value>Settings</value>
</data>
</root>

414
ErsatzTV/Locals/Shared/MainLayout.Designer.cs generated

@ -0,0 +1,414 @@ @@ -0,0 +1,414 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ErsatzTV.Locals.Shared {
using System;
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class MainLayout {
private static System.Resources.ResourceManager resourceMan;
private static System.Globalization.CultureInfo resourceCulture;
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal MainLayout() {
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
internal static System.Resources.ResourceManager ResourceManager {
get {
if (object.Equals(null, resourceMan)) {
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("ErsatzTV.Locals.Shared.MainLayout", typeof(MainLayout).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
internal static System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
internal static string ButtonChannels {
get {
return ResourceManager.GetString("ButtonChannels", resourceCulture);
}
}
internal static string ButtonFFmpegProfiles {
get {
return ResourceManager.GetString("ButtonFFmpegProfiles", resourceCulture);
}
}
internal static string ButtonWatermarks {
get {
return ResourceManager.GetString("ButtonWatermarks", resourceCulture);
}
}
internal static string ButtonMediaSources {
get {
return ResourceManager.GetString("ButtonMediaSources", resourceCulture);
}
}
internal static string ButtonMedia {
get {
return ResourceManager.GetString("ButtonMedia", resourceCulture);
}
}
internal static string ButtonLists {
get {
return ResourceManager.GetString("ButtonLists", resourceCulture);
}
}
internal static string ButtonSettings {
get {
return ResourceManager.GetString("ButtonSettings", resourceCulture);
}
}
internal static string ButtonMediaSourcesLocal {
get {
return ResourceManager.GetString("ButtonMediaSourcesLocal", resourceCulture);
}
}
internal static string ButtonMediaSourcesEmby {
get {
return ResourceManager.GetString("ButtonMediaSourcesEmby", resourceCulture);
}
}
internal static string ButtonMediaSourcesJellyfin {
get {
return ResourceManager.GetString("ButtonMediaSourcesJellyfin", resourceCulture);
}
}
internal static string ButtonMediaSourcesPlex {
get {
return ResourceManager.GetString("ButtonMediaSourcesPlex", resourceCulture);
}
}
internal static string ButtonMediaLibraries {
get {
return ResourceManager.GetString("ButtonMediaLibraries", resourceCulture);
}
}
internal static string ButtonMediaTrash {
get {
return ResourceManager.GetString("ButtonMediaTrash", resourceCulture);
}
}
internal static string ButtonMediaTvShows {
get {
return ResourceManager.GetString("ButtonMediaTvShows", resourceCulture);
}
}
internal static string ButtonMediaMovies {
get {
return ResourceManager.GetString("ButtonMediaMovies", resourceCulture);
}
}
internal static string ButtonMediaMusic {
get {
return ResourceManager.GetString("ButtonMediaMusic", resourceCulture);
}
}
internal static string ButtonMediaOtherVideos {
get {
return ResourceManager.GetString("ButtonMediaOtherVideos", resourceCulture);
}
}
internal static string ButtonMediaSongs {
get {
return ResourceManager.GetString("ButtonMediaSongs", resourceCulture);
}
}
internal static string ButtonMediaImages {
get {
return ResourceManager.GetString("ButtonMediaImages", resourceCulture);
}
}
internal static string ButtonMediaRemoteStreams {
get {
return ResourceManager.GetString("ButtonMediaRemoteStreams", resourceCulture);
}
}
internal static string ButtonListsManualCollections {
get {
return ResourceManager.GetString("ButtonListsManualCollections", resourceCulture);
}
}
internal static string ButtonListsSmartCollections {
get {
return ResourceManager.GetString("ButtonListsSmartCollections", resourceCulture);
}
}
internal static string ButtonListsMultiCollections {
get {
return ResourceManager.GetString("ButtonListsMultiCollections", resourceCulture);
}
}
internal static string ButtonListsRerunCollections {
get {
return ResourceManager.GetString("ButtonListsRerunCollections", resourceCulture);
}
}
internal static string ButtonListsPlaylists {
get {
return ResourceManager.GetString("ButtonListsPlaylists", resourceCulture);
}
}
internal static string ButtonListsTraktLists {
get {
return ResourceManager.GetString("ButtonListsTraktLists", resourceCulture);
}
}
internal static string ButtonListsFillerPresets {
get {
return ResourceManager.GetString("ButtonListsFillerPresets", resourceCulture);
}
}
internal static string ButtonScheduling {
get {
return ResourceManager.GetString("ButtonScheduling", resourceCulture);
}
}
internal static string ButtonSchedulingSchedules {
get {
return ResourceManager.GetString("ButtonSchedulingSchedules", resourceCulture);
}
}
internal static string ButtonSchedulingBlocks {
get {
return ResourceManager.GetString("ButtonSchedulingBlocks", resourceCulture);
}
}
internal static string ButtonSchedulingTemplates {
get {
return ResourceManager.GetString("ButtonSchedulingTemplates", resourceCulture);
}
}
internal static string ButtonSchedulingDecos {
get {
return ResourceManager.GetString("ButtonSchedulingDecos", resourceCulture);
}
}
internal static string ButtonSchedulingDecoTemplates {
get {
return ResourceManager.GetString("ButtonSchedulingDecoTemplates", resourceCulture);
}
}
internal static string ButtonSchedulingPlayouts {
get {
return ResourceManager.GetString("ButtonSchedulingPlayouts", resourceCulture);
}
}
internal static string ButtonSettingsFFmpeg {
get {
return ResourceManager.GetString("ButtonSettingsFFmpeg", resourceCulture);
}
}
internal static string ButtonSettingsLogging {
get {
return ResourceManager.GetString("ButtonSettingsLogging", resourceCulture);
}
}
internal static string ButtonSettingsHdHomeRun {
get {
return ResourceManager.GetString("ButtonSettingsHdHomeRun", resourceCulture);
}
}
internal static string ButtonSettingsScanner {
get {
return ResourceManager.GetString("ButtonSettingsScanner", resourceCulture);
}
}
internal static string ButtonSettingsPlayout {
get {
return ResourceManager.GetString("ButtonSettingsPlayout", resourceCulture);
}
}
internal static string ButtonSettingsUi {
get {
return ResourceManager.GetString("ButtonSettingsUi", resourceCulture);
}
}
internal static string ButtonSettingsXmltv {
get {
return ResourceManager.GetString("ButtonSettingsXmltv", resourceCulture);
}
}
internal static string ButtonSupport {
get {
return ResourceManager.GetString("ButtonSupport", resourceCulture);
}
}
internal static string ButtonSupportHealthChecks {
get {
return ResourceManager.GetString("ButtonSupportHealthChecks", resourceCulture);
}
}
internal static string ButtonSupportLogs {
get {
return ResourceManager.GetString("ButtonSupportLogs", resourceCulture);
}
}
internal static string ButtonSupportTroubleshooting {
get {
return ResourceManager.GetString("ButtonSupportTroubleshooting", resourceCulture);
}
}
internal static string LabelErsatzTVVersion {
get {
return ResourceManager.GetString("LabelErsatzTVVersion", resourceCulture);
}
}
internal static string LabelSearchTargetChannel {
get {
return ResourceManager.GetString("LabelSearchTargetChannel", resourceCulture);
}
}
internal static string LabelSearchTargetFFmpegProfile {
get {
return ResourceManager.GetString("LabelSearchTargetFFmpegProfile", resourceCulture);
}
}
internal static string LabelSearchTargetChannelWatermark {
get {
return ResourceManager.GetString("LabelSearchTargetChannelWatermark", resourceCulture);
}
}
internal static string LabelSearchTargetCollection {
get {
return ResourceManager.GetString("LabelSearchTargetCollection", resourceCulture);
}
}
internal static string LabelSearchTargetMultiCollection {
get {
return ResourceManager.GetString("LabelSearchTargetMultiCollection", resourceCulture);
}
}
internal static string LabelSearchTargetSmartCollection {
get {
return ResourceManager.GetString("LabelSearchTargetSmartCollection", resourceCulture);
}
}
internal static string LabelSearchTargetSchedule {
get {
return ResourceManager.GetString("LabelSearchTargetSchedule", resourceCulture);
}
}
internal static string LabelSearchTargetScheduleItems {
get {
return ResourceManager.GetString("LabelSearchTargetScheduleItems", resourceCulture);
}
}
internal static string ButtonM3U {
get {
return ResourceManager.GetString("ButtonM3U", resourceCulture);
}
}
internal static string ButtonXmltv {
get {
return ResourceManager.GetString("ButtonXmltv", resourceCulture);
}
}
internal static string ButtonApi {
get {
return ResourceManager.GetString("ButtonApi", resourceCulture);
}
}
internal static string ButtonDocumentation {
get {
return ResourceManager.GetString("ButtonDocumentation", resourceCulture);
}
}
internal static string ButtonDiscord {
get {
return ResourceManager.GetString("ButtonDiscord", resourceCulture);
}
}
internal static string ButtonGitHub {
get {
return ResourceManager.GetString("ButtonGitHub", resourceCulture);
}
}
internal static string ButtonLogout {
get {
return ResourceManager.GetString("ButtonLogout", resourceCulture);
}
}
}
}

59
ErsatzTV/Locals/Shared/MainLayout.pt-br.resx

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
<root>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ButtonChannels" xml:space="preserve">
<value>Canais</value>
</data>
<data name="ButtonFFmpegProfiles" xml:space="preserve">
<value>Perfis FFmpeg</value>
</data>
<data name="ButtonWatermarks" xml:space="preserve">
<value>Marcas d'água</value>
</data>
<data name="ButtonMediaSources" xml:space="preserve">
<value>Fontes de mídia</value>
</data>
<data name="ButtonMedia" xml:space="preserve">
<value>Mídias</value>
</data>
<data name="ButtonLists" xml:space="preserve">
<value>Listas</value>
</data>
<data name="ButtonSettings" xml:space="preserve">
<value>Definições</value>
</data>
<data name="ButtonMediaTvShows" xml:space="preserve">
<value>Séries</value>
</data>
<data name="ButtonMediaTrash" xml:space="preserve">
<value>Lixo</value>
</data>
<data name="ButtonMediaMovies" xml:space="preserve">
<value>Filmes</value>
</data>
<data name="ButtonMediaMusic" xml:space="preserve">
<value>Vídeos de música</value>
</data>
<data name="ButtonMediaLibraries" xml:space="preserve">
<value>Bibliotecas</value>
</data>
<data name="ButtonSchedulingSchedules" xml:space="preserve">
<value>Horários</value>
</data>
<data name="ButtonListsFillerPresets" xml:space="preserve">
<value>Predefinições de preenchimento</value>
</data>
<data name="ButtonListsTraktLists" xml:space="preserve">
<value>Listas Trakt</value>
</data>
</root>

204
ErsatzTV/Locals/Shared/MainLayout.resx

@ -0,0 +1,204 @@ @@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ButtonChannels" xml:space="preserve">
<value>Channels</value>
</data>
<data name="ButtonFFmpegProfiles" xml:space="preserve">
<value>FFmpeg Profiles</value>
</data>
<data name="ButtonWatermarks" xml:space="preserve">
<value>Watermarks</value>
</data>
<data name="ButtonMediaSources" xml:space="preserve">
<value>Media Sources</value>
</data>
<data name="ButtonMedia" xml:space="preserve">
<value>Media</value>
</data>
<data name="ButtonLists" xml:space="preserve">
<value>Lists</value>
</data>
<data name="ButtonSettings" xml:space="preserve">
<value>Settings</value>
</data>
<data name="ButtonMediaSourcesLocal" xml:space="preserve">
<value>Local</value>
</data>
<data name="ButtonMediaSourcesEmby" xml:space="preserve">
<value>Emby</value>
</data>
<data name="ButtonMediaSourcesJellyfin" xml:space="preserve">
<value>Jellyfin</value>
</data>
<data name="ButtonMediaSourcesPlex" xml:space="preserve">
<value>Plex</value>
</data>
<data name="ButtonMediaLibraries" xml:space="preserve">
<value>Libraries</value>
</data>
<data name="ButtonMediaTrash" xml:space="preserve">
<value>Trash</value>
</data>
<data name="ButtonMediaTvShows" xml:space="preserve">
<value>TV Shows</value>
</data>
<data name="ButtonMediaMovies" xml:space="preserve">
<value>Movies</value>
</data>
<data name="ButtonMediaMusic" xml:space="preserve">
<value>Music</value>
</data>
<data name="ButtonMediaOtherVideos" xml:space="preserve">
<value>Other Videos</value>
</data>
<data name="ButtonMediaSongs" xml:space="preserve">
<value>Songs</value>
</data>
<data name="ButtonMediaImages" xml:space="preserve">
<value>Images</value>
</data>
<data name="ButtonMediaRemoteStreams" xml:space="preserve">
<value>Remote Streams</value>
</data>
<data name="ButtonListsManualCollections" xml:space="preserve">
<value>Manual Collections</value>
</data>
<data name="ButtonListsSmartCollections" xml:space="preserve">
<value>Smart Collections</value>
</data>
<data name="ButtonListsMultiCollections" xml:space="preserve">
<value>Multi Collections</value>
</data>
<data name="ButtonListsRerunCollections" xml:space="preserve">
<value>Rerun Collections</value>
</data>
<data name="ButtonListsPlaylists" xml:space="preserve">
<value>Playlists</value>
</data>
<data name="ButtonListsTraktLists" xml:space="preserve">
<value>Trakt Lists</value>
</data>
<data name="ButtonListsFillerPresets" xml:space="preserve">
<value>Filler Presets</value>
</data>
<data name="ButtonScheduling" xml:space="preserve">
<value>Scheduling</value>
</data>
<data name="ButtonSchedulingSchedules" xml:space="preserve">
<value>Schedules</value>
</data>
<data name="ButtonSchedulingBlocks" xml:space="preserve">
<value>Blocks</value>
</data>
<data name="ButtonSchedulingTemplates" xml:space="preserve">
<value>Templates</value>
</data>
<data name="ButtonSchedulingDecos" xml:space="preserve">
<value>Decos</value>
</data>
<data name="ButtonSchedulingDecoTemplates" xml:space="preserve">
<value>Deco Templates</value>
</data>
<data name="ButtonSchedulingPlayouts" xml:space="preserve">
<value>Playouts</value>
</data>
<data name="ButtonSettingsFFmpeg" xml:space="preserve">
<value>FFmpeg</value>
</data>
<data name="ButtonSettingsLogging" xml:space="preserve">
<value>Logging</value>
</data>
<data name="ButtonSettingsHdHomeRun" xml:space="preserve">
<value>HDHomeRun</value>
</data>
<data name="ButtonSettingsScanner" xml:space="preserve">
<value>Scanner</value>
</data>
<data name="ButtonSettingsPlayout" xml:space="preserve">
<value>Playout</value>
</data>
<data name="ButtonSettingsUi" xml:space="preserve">
<value>UI</value>
</data>
<data name="ButtonSettingsXmltv" xml:space="preserve">
<value>XMLTV</value>
</data>
<data name="ButtonSupport" xml:space="preserve">
<value>Support</value>
</data>
<data name="ButtonSupportHealthChecks" xml:space="preserve">
<value>Health Checks</value>
</data>
<data name="ButtonSupportLogs" xml:space="preserve">
<value>Logs</value>
</data>
<data name="ButtonSupportTroubleshooting" xml:space="preserve">
<value>Troubleshooting</value>
</data>
<data name="LabelErsatzTVVersion" xml:space="preserve">
<value>ErsatzTV Version</value>
</data>
<data name="LabelSearchTargetChannel" xml:space="preserve">
<value>Channel</value>
</data>
<data name="LabelSearchTargetFFmpegProfile" xml:space="preserve">
<value>FFmpeg Profile</value>
</data>
<data name="LabelSearchTargetChannelWatermark" xml:space="preserve">
<value>Channel Watermark</value>
</data>
<data name="LabelSearchTargetCollection" xml:space="preserve">
<value>Collection</value>
</data>
<data name="LabelSearchTargetMultiCollection" xml:space="preserve">
<value>Multi Collection</value>
</data>
<data name="LabelSearchTargetSmartCollection" xml:space="preserve">
<value>Smart Collection</value>
</data>
<data name="LabelSearchTargetSchedule" xml:space="preserve">
<value>Schedule</value>
</data>
<data name="LabelSearchTargetScheduleItems" xml:space="preserve">
<value>Schedule Items</value>
</data>
<data name="ButtonM3U" xml:space="preserve">
<value>M3U</value>
</data>
<data name="ButtonXmltv" xml:space="preserve">
<value>XMLTV</value>
</data>
<data name="ButtonApi" xml:space="preserve">
<value>API</value>
</data>
<data name="ButtonDocumentation" xml:space="preserve">
<value>Documentation</value>
</data>
<data name="ButtonDiscord" xml:space="preserve">
<value>Discord</value>
</data>
<data name="ButtonGitHub" xml:space="preserve">
<value>GitHub</value>
</data>
<data name="ButtonLogout" xml:space="preserve">
<value>Logout</value>
</data>
</root>

136
ErsatzTV/Shared/MainLayout.razor

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
@inject ISearchTargets SearchTargets;
@inject ICourier Courier
@inject IHealthCheckService HealthCheckService;
@inject IStringLocalizer<Resources> StringLocalizer;
@inject IStringLocalizer<ErsatzTV.Locals.Shared.MainLayout> StringLocalizer;
<MudThemeProvider Theme="ErsatzTvTheme" IsDarkMode="_isDarkMode"/>
<MudDialogProvider BackdropClick="false"/>
@ -63,14 +63,14 @@ @@ -63,14 +63,14 @@
@(
searchTarget.Kind switch
{
SearchTargetKind.Channel => "Channel",
SearchTargetKind.FFmpegProfile => "FFmpeg Profile",
SearchTargetKind.ChannelWatermark => "Channel Watermark",
SearchTargetKind.Collection => "Collection",
SearchTargetKind.MultiCollection => "Multi Collection",
SearchTargetKind.SmartCollection => "Smart Collection",
SearchTargetKind.Schedule => "Schedule",
SearchTargetKind.ScheduleItems => "Schedule Items",
SearchTargetKind.Channel => StringLocalizer["LabelSearchTargetChannel"],
SearchTargetKind.FFmpegProfile => StringLocalizer["LabelSearchTargetFFmpegProfile"],
SearchTargetKind.ChannelWatermark => StringLocalizer["LabelSearchTargetChannelWatermark"],
SearchTargetKind.Collection => StringLocalizer["LabelSearchTargetCollection"],
SearchTargetKind.MultiCollection => StringLocalizer["LabelSearchTargetMultiCollection"],
SearchTargetKind.SmartCollection => StringLocalizer["LabelSearchTargetSmartCollection"],
SearchTargetKind.Schedule => StringLocalizer["LabelSearchTargetSchedule"],
SearchTargetKind.ScheduleItems => StringLocalizer["LabelSearchTargetScheduleItems"],
_ => string.Empty
})
</MudText>
@ -91,23 +91,23 @@ @@ -91,23 +91,23 @@
{
<MudText Color="Color.Warning" Class="mx-4">@System.Environment.MachineName</MudText>
}
<MudLink Color="Color.Info" Href="iptv/channels.m3u" Target="_blank" Underline="Underline.None">M3U</MudLink>
<MudLink Color="Color.Info" Href="iptv/xmltv.xml" Target="_blank" Class="mx-4" Underline="Underline.None">XMLTV</MudLink>
<MudLink Color="Color.Primary" Href="docs" Target="_blank" Underline="Underline.None" Style="font-weight: bold">API</MudLink>
<MudLink Color="Color.Info" Href="iptv/channels.m3u" Target="_blank" Underline="Underline.None">@StringLocalizer["ButtonM3U"]</MudLink>
<MudLink Color="Color.Info" Href="iptv/xmltv.xml" Target="_blank" Class="mx-4" Underline="Underline.None">@StringLocalizer["ButtonXmltv"]</MudLink>
<MudLink Color="Color.Primary" Href="docs" Target="_blank" Underline="Underline.None" Style="font-weight: bold">@StringLocalizer["ButtonApi"]</MudLink>
}
@* <MudLink Color="Color.Info" Href="/swagger" Target="_blank" Class="mr-4" Underline="Underline.None">API</MudLink> *@
<MudTooltip Text="Documentation">
<MudTooltip Text="@StringLocalizer["ButtonDocumentation"]">
<MudIconButton Icon="@Icons.Material.Filled.Help" Color="Color.Primary" Href="https://ersatztv.org" Target="_blank"/>
</MudTooltip>
<MudTooltip Text="Discord">
<MudTooltip Text="@StringLocalizer["ButtonDiscord"]">
<MudIconButton Icon="@Icons.Custom.Brands.Discord" Color="Color.Primary" Href="https://discord.ersatztv.org" Target="_blank"/>
</MudTooltip>
<MudTooltip Text="GitHub">
<MudTooltip Text="@StringLocalizer["ButtonGitHub"]">
<MudIconButton Icon="@Icons.Custom.Brands.GitHub" Color="Color.Primary" Href="https://github.com/ErsatzTV/ErsatzTV" Target="_blank"/>
</MudTooltip>
<AuthorizeView>
<form action="/account/logout" method="post">
<MudTooltip Text="Logout">
<MudTooltip Text="@StringLocalizer["ButtonLogout"]">
<MudIconButton Icon="@Icons.Material.Filled.Logout" Color="Color.Secondary" ButtonType="ButtonType.Submit"/>
</MudTooltip>
</form>
@ -118,55 +118,55 @@ @@ -118,55 +118,55 @@
{
<MudDrawer @bind-Open="@_drawerIsOpen" Elevation="2" ClipMode="DrawerClipMode.Always">
<MudNavMenu>
<MudNavLink Href="channels">@StringLocalizer["ButtonMainMenuChannels"]</MudNavLink>
<MudNavLink Href="ffmpeg">@StringLocalizer["ButtonMainMenuFFmpegProfiles"]</MudNavLink>
<MudNavLink Href="watermarks">@StringLocalizer["ButtonMainMenuWatermarks"]</MudNavLink>
<MudNavGroup Title="@StringLocalizer["ButtonMainMenuMediaSources"]">
<MudNavLink Href="media/sources/local">Local</MudNavLink>
<MudNavLink Href="media/sources/emby">Emby</MudNavLink>
<MudNavLink Href="media/sources/jellyfin">Jellyfin</MudNavLink>
<MudNavLink Href="media/sources/plex">Plex</MudNavLink>
<MudNavLink Href="channels">@StringLocalizer["ButtonChannels"]</MudNavLink>
<MudNavLink Href="ffmpeg">@StringLocalizer["ButtonFFmpegProfiles"]</MudNavLink>
<MudNavLink Href="watermarks">@StringLocalizer["ButtonWatermarks"]</MudNavLink>
<MudNavGroup Title="@StringLocalizer["ButtonMediaSources"]">
<MudNavLink Href="media/sources/local">@StringLocalizer["ButtonMediaSourcesLocal"]</MudNavLink>
<MudNavLink Href="media/sources/emby">@StringLocalizer["ButtonMediaSourcesEmby"]</MudNavLink>
<MudNavLink Href="media/sources/jellyfin">@StringLocalizer["ButtonMediaSourcesJellyfin"]</MudNavLink>
<MudNavLink Href="media/sources/plex">@StringLocalizer["ButtonMediaSourcesPlex"]</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="@StringLocalizer["ButtonMainMenuMedia"]">
<MudNavLink Href="media/libraries">Libraries</MudNavLink>
<MudNavLink Href="media/trash">Trash</MudNavLink>
<MudNavLink Href="media/tv/shows">TV Shows</MudNavLink>
<MudNavLink Href="media/movies">Movies</MudNavLink>
<MudNavLink Href="media/music/artists">Music</MudNavLink>
<MudNavLink Href="media/other/videos">Other Videos</MudNavLink>
<MudNavLink Href="media/music/songs">Songs</MudNavLink>
<MudNavLink Href="media/browser/images">Images</MudNavLink>
<MudNavLink Href="media/remote/streams">Remote Streams</MudNavLink>
<MudNavGroup Title="@StringLocalizer["ButtonMedia"]">
<MudNavLink Href="media/libraries">@StringLocalizer["ButtonMediaLibraries"]</MudNavLink>
<MudNavLink Href="media/trash">@StringLocalizer["ButtonMediaTrash"]</MudNavLink>
<MudNavLink Href="media/tv/shows">@StringLocalizer["ButtonMediaTvShows"]</MudNavLink>
<MudNavLink Href="media/movies">@StringLocalizer["ButtonMediaMovies"]</MudNavLink>
<MudNavLink Href="media/music/artists">@StringLocalizer["ButtonMediaMusic"]</MudNavLink>
<MudNavLink Href="media/other/videos">@StringLocalizer["ButtonMediaOtherVideos"]</MudNavLink>
<MudNavLink Href="media/music/songs">@StringLocalizer["ButtonMediaSongs"]</MudNavLink>
<MudNavLink Href="media/browser/images">@StringLocalizer["ButtonMediaImages"]</MudNavLink>
<MudNavLink Href="media/remote/streams">@StringLocalizer["ButtonMediaRemoteStreams"]</MudNavLink>
</MudNavGroup>
<MudNavGroup Title="@StringLocalizer["ButtonMainMenuLists"]">
<MudNavLink Href="media/collections">Manual Collections</MudNavLink>
<MudNavLink Href="media/smart-collections">Smart Collections</MudNavLink>
<MudNavLink Href="media/multi-collections">Multi Collections</MudNavLink>
<MudNavLink Href="media/rerun-collections">Rerun Collections</MudNavLink>
<MudNavLink Href="media/playlists">Playlists</MudNavLink>
<MudNavLink Href="media/trakt/lists">Trakt Lists</MudNavLink>
<MudNavLink Href="media/filler/presets">Filler Presets</MudNavLink>
<MudNavGroup Title="@StringLocalizer["ButtonLists"]">
<MudNavLink Href="media/collections">@StringLocalizer["ButtonListsManualCollections"]</MudNavLink>
<MudNavLink Href="media/smart-collections">@StringLocalizer["ButtonListsSmartCollections"]</MudNavLink>
<MudNavLink Href="media/multi-collections">@StringLocalizer["ButtonListsMultiCollections"]</MudNavLink>
<MudNavLink Href="media/rerun-collections">@StringLocalizer["ButtonListsRerunCollections"]</MudNavLink>
<MudNavLink Href="media/playlists">@StringLocalizer["ButtonListsPlaylists"]</MudNavLink>
<MudNavLink Href="media/trakt/lists">@StringLocalizer["ButtonListsTraktLists"]</MudNavLink>
<MudNavLink Href="media/filler/presets">@StringLocalizer["ButtonListsFillerPresets"]</MudNavLink>
</MudNavGroup>
<MudNavGroup>
<TitleContent>
@if (_playoutWarnings > 0)
{
<div style="align-items: center; display: flex">
Scheduling
@StringLocalizer["ButtonScheduling"]
<MudIcon Color="@Color.Warning" Icon="@Icons.Material.Filled.Warning" Class="mx-2"/>
</div>
}
else
{
@:Scheduling
@StringLocalizer["ButtonScheduling"]
}
</TitleContent>
<ChildContent>
<MudNavLink Href="schedules">Schedules</MudNavLink>
<MudNavLink Href="blocks">Blocks</MudNavLink>
<MudNavLink Href="templates">Templates</MudNavLink>
<MudNavLink Href="decos">Decos</MudNavLink>
<MudNavLink Href="deco-templates">Deco Templates</MudNavLink>
<MudNavLink Href="schedules">@StringLocalizer["ButtonSchedulingSchedules"]</MudNavLink>
<MudNavLink Href="blocks">@StringLocalizer["ButtonSchedulingBlocks"]</MudNavLink>
<MudNavLink Href="templates">@StringLocalizer["ButtonSchedulingTemplates"]</MudNavLink>
<MudNavLink Href="decos">@StringLocalizer["ButtonSchedulingDecos"]</MudNavLink>
<MudNavLink Href="deco-templates">@StringLocalizer["ButtonSchedulingDecoTemplates"]</MudNavLink>
<MudNavLink Href="playouts">
@if (_playoutWarnings > 0)
{
@ -174,44 +174,44 @@ @@ -174,44 +174,44 @@
Color="Color.Warning"
Origin="Origin.CenterRight"
BadgeClass="mx-3">
Playouts
@StringLocalizer["ButtonSchedulingPlayouts"]
</MudBadge>
}
else
{
@:Playouts
@StringLocalizer["ButtonSchedulingPlayouts"]
}
</MudNavLink>
</ChildContent>
</MudNavGroup>
<MudNavGroup Title="@StringLocalizer["ButtonMainMenuSettings"]">
<MudNavLink Href="settings/ffmpeg">FFmpeg</MudNavLink>
<MudNavLink Href="settings/logging">Logging</MudNavLink>
<MudNavLink Href="settings/hdhr">HDHomeRun</MudNavLink>
<MudNavLink Href="settings/scanner">Scanner</MudNavLink>
<MudNavLink Href="settings/playout">Playout</MudNavLink>
<MudNavLink Href="settings/ui">UI</MudNavLink>
<MudNavLink Href="settings/xmltv">XMLTV</MudNavLink>
<MudNavGroup Title="@StringLocalizer["ButtonSettings"]">
<MudNavLink Href="settings/ffmpeg">@StringLocalizer["ButtonSettingsFFmpeg"]</MudNavLink>
<MudNavLink Href="settings/logging">@StringLocalizer["ButtonSettingsLogging"]</MudNavLink>
<MudNavLink Href="settings/hdhr">@StringLocalizer["ButtonSettingsHdHomeRun"]</MudNavLink>
<MudNavLink Href="settings/scanner">@StringLocalizer["ButtonSettingsScanner"]</MudNavLink>
<MudNavLink Href="settings/playout">@StringLocalizer["ButtonSettingsPlayout"]</MudNavLink>
<MudNavLink Href="settings/ui">@StringLocalizer["ButtonSettingsUi"]</MudNavLink>
<MudNavLink Href="settings/xmltv">@StringLocalizer["ButtonSettingsXmltv"]</MudNavLink>
</MudNavGroup>
<MudNavGroup Expanded="true">
<TitleContent>
@if (_errors > 0)
{
<div style="align-items: center; display: flex">
Support
@StringLocalizer["ButtonSupport"]
<MudIcon Color="@Color.Error" Icon="@Icons.Material.Filled.Error" Class="mx-2"/>
</div>
}
else if (_warnings > 0)
{
<div style="align-items: center; display: flex">
Support
@StringLocalizer["ButtonSupport"]
<MudIcon Color="@Color.Warning" Icon="@Icons.Material.Filled.Warning" Class="mx-2"/>
</div>
}
else
{
@:Support
@StringLocalizer["ButtonSupport"]
}
</TitleContent>
<ChildContent>
@ -222,7 +222,7 @@ @@ -222,7 +222,7 @@
Color="Color.Error"
Origin="Origin.CenterRight"
BadgeClass="mx-3">
Health Checks
@StringLocalizer["ButtonSupportHealthChecks"]
</MudBadge>
}
else if (_warnings > 0)
@ -231,21 +231,21 @@ @@ -231,21 +231,21 @@
Color="Color.Warning"
Origin="Origin.CenterRight"
BadgeClass="mx-3">
Health Checks
@StringLocalizer["ButtonSupportHealthChecks"]
</MudBadge>
}
else
{
@:Health Checks
@StringLocalizer["ButtonSupportHealthChecks"]
}
</MudNavLink>
<MudNavLink Href="system/logs">Logs</MudNavLink>
<MudNavLink Href="system/troubleshooting">Troubleshooting</MudNavLink>
<MudNavLink Href="system/logs">@StringLocalizer["ButtonSupportLogs"]</MudNavLink>
<MudNavLink Href="system/troubleshooting">@StringLocalizer["ButtonSupportTroubleshooting"]</MudNavLink>
</ChildContent>
</MudNavGroup>
<MudDivider Class="my-6" DividerType="DividerType.Middle"/>
<MudContainer Style="text-align: right" Class="mr-6">
<MudText Typo="Typo.body2">ErsatzTV Version</MudText>
<MudText Typo="Typo.body2">@StringLocalizer["LabelErsatzTVVersion"]</MudText>
<MudText Typo="Typo.body2" Color="Color.Info">@InfoVersion</MudText>
@if (BuildConfiguration != "release")
{

Loading…
Cancel
Save