Browse Source

EditorConfig reformat: Non-CS files.

Erwin de Haan 6 years ago
parent
commit
742bef5b5f
100 changed files with 6819 additions and 6946 deletions
  1. 10 10
      BDInfo/BDInfo.csproj
  2. 1 1
      BDInfo/ReadMe.txt
  3. 10 10
      DvdLib/DvdLib.csproj
  4. 53 53
      Emby.Dlna/Emby.Dlna.csproj
  5. 59 58
      Emby.Dlna/Profiles/Xml/Default.xml
  6. 66 65
      Emby.Dlna/Profiles/Xml/Denon AVR.xml
  7. 65 64
      Emby.Dlna/Profiles/Xml/DirecTV HD-DVR.xml
  8. 94 93
      Emby.Dlna/Profiles/Xml/Dish Hopper-Joey.xml
  9. 90 89
      Emby.Dlna/Profiles/Xml/LG Smart TV.xml
  10. 52 51
      Emby.Dlna/Profiles/Xml/Linksys DMA2100.xml
  11. 60 59
      Emby.Dlna/Profiles/Xml/Marantz.xml
  12. 60 59
      Emby.Dlna/Profiles/Xml/MediaMonkey.xml
  13. 85 84
      Emby.Dlna/Profiles/Xml/Panasonic Viera.xml
  14. 91 90
      Emby.Dlna/Profiles/Xml/Popcorn Hour.xml
  15. 127 126
      Emby.Dlna/Profiles/Xml/Samsung Smart TV.xml
  16. 59 58
      Emby.Dlna/Profiles/Xml/Sharp Smart TV.xml
  17. 0 31
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml
  18. 0 31
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2014.xml
  19. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2015.xml
  20. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2016.xml
  21. 0 29
      Emby.Dlna/Profiles/Xml/Sony Blu-ray Player.xml
  22. 132 131
      Emby.Dlna/Profiles/Xml/Sony Bravia (2010).xml
  23. 138 137
      Emby.Dlna/Profiles/Xml/Sony Bravia (2011).xml
  24. 114 113
      Emby.Dlna/Profiles/Xml/Sony Bravia (2012).xml
  25. 113 112
      Emby.Dlna/Profiles/Xml/Sony Bravia (2013).xml
  26. 113 112
      Emby.Dlna/Profiles/Xml/Sony Bravia (2014).xml
  27. 104 103
      Emby.Dlna/Profiles/Xml/Sony PlayStation 3.xml
  28. 107 106
      Emby.Dlna/Profiles/Xml/Sony PlayStation 4.xml
  29. 93 92
      Emby.Dlna/Profiles/Xml/WDTV Live.xml
  30. 125 124
      Emby.Dlna/Profiles/Xml/Xbox One.xml
  31. 65 64
      Emby.Dlna/Profiles/Xml/foobar2000.xml
  32. 16 16
      Emby.Drawing.Skia/Emby.Drawing.Skia.csproj
  33. 11 11
      Emby.Drawing/Emby.Drawing.csproj
  34. 12 12
      Emby.IsoMounting/IsoMounter/IsoMounter.csproj
  35. 12 12
      Emby.Naming/Emby.Naming.csproj
  36. 12 12
      Emby.Notifications/Emby.Notifications.csproj
  37. 12 12
      Emby.Photos/Emby.Photos.csproj
  38. 42 42
      Emby.Server.Implementations/Emby.Server.Implementations.csproj
  39. 98 98
      Emby.Server.Implementations/Localization/Core/ar.json
  40. 98 98
      Emby.Server.Implementations/Localization/Core/bg-BG.json
  41. 98 98
      Emby.Server.Implementations/Localization/Core/ca.json
  42. 98 98
      Emby.Server.Implementations/Localization/Core/cs.json
  43. 98 98
      Emby.Server.Implementations/Localization/Core/da.json
  44. 98 98
      Emby.Server.Implementations/Localization/Core/de.json
  45. 98 98
      Emby.Server.Implementations/Localization/Core/el.json
  46. 98 98
      Emby.Server.Implementations/Localization/Core/en-GB.json
  47. 97 97
      Emby.Server.Implementations/Localization/Core/en-US.json
  48. 98 98
      Emby.Server.Implementations/Localization/Core/es-AR.json
  49. 98 98
      Emby.Server.Implementations/Localization/Core/es-MX.json
  50. 98 98
      Emby.Server.Implementations/Localization/Core/es.json
  51. 98 98
      Emby.Server.Implementations/Localization/Core/fa.json
  52. 98 98
      Emby.Server.Implementations/Localization/Core/fr-CA.json
  53. 98 98
      Emby.Server.Implementations/Localization/Core/fr.json
  54. 98 98
      Emby.Server.Implementations/Localization/Core/gsw.json
  55. 98 98
      Emby.Server.Implementations/Localization/Core/he.json
  56. 98 98
      Emby.Server.Implementations/Localization/Core/hr.json
  57. 98 98
      Emby.Server.Implementations/Localization/Core/hu.json
  58. 98 98
      Emby.Server.Implementations/Localization/Core/it.json
  59. 98 98
      Emby.Server.Implementations/Localization/Core/kk.json
  60. 98 98
      Emby.Server.Implementations/Localization/Core/ko.json
  61. 98 98
      Emby.Server.Implementations/Localization/Core/lt-LT.json
  62. 98 98
      Emby.Server.Implementations/Localization/Core/ms.json
  63. 98 98
      Emby.Server.Implementations/Localization/Core/nb.json
  64. 98 98
      Emby.Server.Implementations/Localization/Core/nl.json
  65. 98 98
      Emby.Server.Implementations/Localization/Core/pl.json
  66. 98 98
      Emby.Server.Implementations/Localization/Core/pt-BR.json
  67. 98 98
      Emby.Server.Implementations/Localization/Core/pt-PT.json
  68. 98 98
      Emby.Server.Implementations/Localization/Core/ru.json
  69. 98 98
      Emby.Server.Implementations/Localization/Core/sk.json
  70. 98 98
      Emby.Server.Implementations/Localization/Core/sl-SI.json
  71. 98 98
      Emby.Server.Implementations/Localization/Core/sv.json
  72. 98 98
      Emby.Server.Implementations/Localization/Core/tr.json
  73. 98 98
      Emby.Server.Implementations/Localization/Core/zh-CN.json
  74. 98 98
      Emby.Server.Implementations/Localization/Core/zh-HK.json
  75. 1 1
      Emby.Server.Implementations/Localization/Ratings/br.txt
  76. 1 1
      Emby.Server.Implementations/Localization/Ratings/ca.txt
  77. 1 1
      Emby.Server.Implementations/Localization/Ratings/co.txt
  78. 1 1
      Emby.Server.Implementations/Localization/Ratings/dk.txt
  79. 1 1
      Emby.Server.Implementations/Localization/Ratings/es.txt
  80. 1 1
      Emby.Server.Implementations/Localization/Ratings/fr.txt
  81. 1 1
      Emby.Server.Implementations/Localization/Ratings/ie.txt
  82. 1 1
      Emby.Server.Implementations/Localization/Ratings/jp.txt
  83. 1 1
      Emby.Server.Implementations/Localization/Ratings/kz.txt
  84. 1 1
      Emby.Server.Implementations/Localization/Ratings/mx.txt
  85. 1 1
      Emby.Server.Implementations/Localization/Ratings/nl.txt
  86. 1 1
      Emby.Server.Implementations/Localization/Ratings/nz.txt
  87. 1 1
      Emby.Server.Implementations/Localization/Ratings/ro.txt
  88. 1 1
      Emby.Server.Implementations/Localization/Ratings/uk.txt
  89. 1 1
      Emby.Server.Implementations/Localization/Ratings/us.txt
  90. 828 828
      Emby.Server.Implementations/Localization/countries.json
  91. 1 1
      Emby.Server.Implementations/Localization/iso6392.txt
  92. 19 19
      Emby.XmlTv/Emby.XmlTv.Console/Emby.XmlTv.Console.csproj
  93. 114 113
      Emby.XmlTv/Emby.XmlTv.Test/Emby.XmlTv.Test.csproj
  94. 8 9
      Emby.XmlTv/Emby.XmlTv/Emby.XmlTv.csproj
  95. 35 35
      Jellyfin.Server/Jellyfin.Server.csproj
  96. 11 11
      MediaBrowser.Api/MediaBrowser.Api.csproj
  97. 16 16
      MediaBrowser.Common/MediaBrowser.Common.csproj
  98. 17 17
      MediaBrowser.Controller/MediaBrowser.Controller.csproj
  99. 11 11
      MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
  100. 14 14
      MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj

+ 10 - 10
BDInfo/BDInfo.csproj

@@ -1,16 +1,16 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 1 - 1
BDInfo/ReadMe.txt

@@ -2,4 +2,4 @@
 
 http://www.cinemasquid.com/blu-ray/tools/bdinfo
 
-BDInfoSettings was taken from the FormSettings class, and changed so that the settings all return defaults.
+BDInfoSettings was taken from the FormSettings class, and changed so that the settings all return defaults.

+ 10 - 10
DvdLib/DvdLib.csproj

@@ -1,16 +1,16 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 53 - 53
Emby.Dlna/Emby.Dlna.csproj

@@ -1,61 +1,61 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    <ProjectReference Include="..\RSSDP\RSSDP.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+        <ProjectReference Include="..\RSSDP\RSSDP.csproj" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <EmbeddedResource Include="Images\logo120.jpg" />
-    <EmbeddedResource Include="Images\logo120.png" />
-    <EmbeddedResource Include="Images\logo240.jpg" />
-    <EmbeddedResource Include="Images\logo240.png" />
-    <EmbeddedResource Include="Images\logo48.jpg" />
-    <EmbeddedResource Include="Images\logo48.png" />
-    <EmbeddedResource Include="Images\people48.jpg" />
-    <EmbeddedResource Include="Images\people48.png" />
-    <EmbeddedResource Include="Images\people480.jpg" />
-    <EmbeddedResource Include="Images\people480.png" />
-  </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="Images\logo120.jpg" />
+        <EmbeddedResource Include="Images\logo120.png" />
+        <EmbeddedResource Include="Images\logo240.jpg" />
+        <EmbeddedResource Include="Images\logo240.png" />
+        <EmbeddedResource Include="Images\logo48.jpg" />
+        <EmbeddedResource Include="Images\logo48.png" />
+        <EmbeddedResource Include="Images\people48.jpg" />
+        <EmbeddedResource Include="Images\people48.png" />
+        <EmbeddedResource Include="Images\people480.jpg" />
+        <EmbeddedResource Include="Images\people480.png" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <EmbeddedResource Include="Profiles\Xml\Default.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Denon AVR.xml" />
-    <EmbeddedResource Include="Profiles\Xml\DirecTV HD-DVR.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Dish Hopper-Joey.xml" />
-    <EmbeddedResource Include="Profiles\Xml\foobar2000.xml" />
-    <EmbeddedResource Include="Profiles\Xml\LG Smart TV.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Linksys DMA2100.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Marantz.xml" />
-    <EmbeddedResource Include="Profiles\Xml\MediaMonkey.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Panasonic Viera.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Popcorn Hour.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Samsung Smart TV.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2013.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2014.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2015.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2016.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282010%29.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282011%29.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282012%29.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282013%29.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 3.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 4.xml" />
-    <EmbeddedResource Include="Profiles\Xml\WDTV Live.xml" />
-    <EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />
-  </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="Profiles\Xml\Default.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Denon AVR.xml" />
+        <EmbeddedResource Include="Profiles\Xml\DirecTV HD-DVR.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Dish Hopper-Joey.xml" />
+        <EmbeddedResource Include="Profiles\Xml\foobar2000.xml" />
+        <EmbeddedResource Include="Profiles\Xml\LG Smart TV.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Linksys DMA2100.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Marantz.xml" />
+        <EmbeddedResource Include="Profiles\Xml\MediaMonkey.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Panasonic Viera.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Popcorn Hour.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Samsung Smart TV.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2013.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2014.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2015.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player 2016.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Blu-ray Player.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282010%29.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282011%29.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282012%29.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282013%29.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 3.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Sony PlayStation 4.xml" />
+        <EmbeddedResource Include="Profiles\Xml\WDTV Live.xml" />
+        <EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />
+    </ItemGroup>
 
 </Project>

+ 59 - 58
Emby.Dlna/Profiles/Xml/Default.xml

@@ -1,60 +1,61 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Generic Device</Name>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="" type="Video" />
-    <DirectPlayProfile container="" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="sub" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="ass" method="Embed" />
-    <SubtitleProfile format="ssa" method="Embed" />
-    <SubtitleProfile format="smi" method="Embed" />
-    <SubtitleProfile format="dvdsub" method="Embed" />
-    <SubtitleProfile format="pgs" method="Embed" />
-    <SubtitleProfile format="pgssub" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="vtt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Generic Device</Name>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="" type="Video" />
+        <DirectPlayProfile container="" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="sub" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="ass" method="Embed" />
+        <SubtitleProfile format="ssa" method="Embed" />
+        <SubtitleProfile format="smi" method="Embed" />
+        <SubtitleProfile format="dvdsub" method="Embed" />
+        <SubtitleProfile format="pgs" method="Embed" />
+        <SubtitleProfile format="pgssub" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="vtt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 66 - 65
Emby.Dlna/Profiles/Xml/Denon AVR.xml

@@ -1,67 +1,68 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Denon AVR</Name>
-  <Identification>
-    <FriendlyName>Denon:\[AVR:.*</FriendlyName>
-    <Manufacturer>Denon</Manufacturer>
-    <Headers />
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles>
-    <CodecProfile type="Audio" container="flac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioSampleRate" value="96000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles />
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="sub" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="ass" method="Embed" />
-    <SubtitleProfile format="ssa" method="Embed" />
-    <SubtitleProfile format="smi" method="Embed" />
-    <SubtitleProfile format="dvdsub" method="Embed" />
-    <SubtitleProfile format="pgs" method="Embed" />
-    <SubtitleProfile format="pgssub" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="vtt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Denon AVR</Name>
+    <Identification>
+        <FriendlyName>Denon:\[AVR:.*</FriendlyName>
+        <Manufacturer>Denon</Manufacturer>
+        <Headers />
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles>
+        <CodecProfile type="Audio" container="flac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioSampleRate" value="96000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles />
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="sub" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="ass" method="Embed" />
+        <SubtitleProfile format="ssa" method="Embed" />
+        <SubtitleProfile format="smi" method="Embed" />
+        <SubtitleProfile format="dvdsub" method="Embed" />
+        <SubtitleProfile format="pgs" method="Embed" />
+        <SubtitleProfile format="pgssub" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="vtt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 65 - 64
Emby.Dlna/Profiles/Xml/DirecTV HD-DVR.xml

@@ -1,66 +1,67 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>DirecTV HD-DVR</Name>
-  <Identification>
-    <FriendlyName>^DIRECTV.*$</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="DIRECTV" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
-  <RequiresPlainFolders>true</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="jpeg,jpg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mpeg" type="Video" videoCodec="mpeg2video" audioCodec="mp2" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="mpeg2video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Audio" codec="mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles />
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>DirecTV HD-DVR</Name>
+    <Identification>
+        <FriendlyName>^DIRECTV.*$</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="DIRECTV" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
+    <RequiresPlainFolders>true</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="jpeg,jpg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mpeg" type="Video" videoCodec="mpeg2video" audioCodec="mp2" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="mpeg2video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Audio" codec="mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles />
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 94 - 93
Emby.Dlna/Profiles/Xml/Dish Hopper-Joey.xml

@@ -1,95 +1,96 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Dish Hopper-Joey</Name>
-  <Identification>
-    <Manufacturer>Echostar Technologies LLC</Manufacturer>
-    <ManufacturerUrl>http://www.echostar.com</ManufacturerUrl>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="Zip_" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mp2t:*,http-get:*:video/MP1S:*,http-get:*:video/mpeg2:*,http-get:*:video/mp4:*,http-get:*:video/x-matroska:*,http-get:*:audio/mpeg:*,http-get:*:audio/mpeg3:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4a-latm:*,http-get:*:image/jpeg:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp3,alac,flac" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3,he-aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="IsSecondaryAudio" value="false" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="mkv,ts,mpegts" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Dish Hopper-Joey</Name>
+    <Identification>
+        <Manufacturer>Echostar Technologies LLC</Manufacturer>
+        <ManufacturerUrl>http://www.echostar.com</ManufacturerUrl>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="Zip_" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mp2t:*,http-get:*:video/MP1S:*,http-get:*:video/mpeg2:*,http-get:*:video/mp4:*,http-get:*:video/x-matroska:*,http-get:*:audio/mpeg:*,http-get:*:audio/mpeg3:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/mp4a-latm:*,http-get:*:image/jpeg:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mp4,mkv,mpeg,ts" audioCodec="mp3,ac3,aac,he-aac,pcm" videoCodec="h264,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp3,alac,flac" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3,he-aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="IsSecondaryAudio" value="false" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="mkv,ts,mpegts" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 90 - 89
Emby.Dlna/Profiles/Xml/LG Smart TV.xml

@@ -1,91 +1,92 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>LG Smart TV</Name>
-  <Identification>
-    <FriendlyName>LG.*</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="LG" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts,avi,mkv,m2ts" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="mp3" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="mpeg4">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3,eac3,aac,mp3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" type="Video" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="srt" method="External" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>LG Smart TV</Name>
+    <Identification>
+        <FriendlyName>LG.*</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="LG" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts,avi,mkv,m2ts" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,eac3,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="mp3" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="mpeg4">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3,eac3,aac,mp3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" type="Video" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="srt" method="External" />
+    </SubtitleProfiles>
 </Profile>

+ 52 - 51
Emby.Dlna/Profiles/Xml/Linksys DMA2100.xml

@@ -1,53 +1,54 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Linksys DMA2100</Name>
-  <Identification>
-    <ModelName>DMA2100us</ModelName>
-    <Headers />
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
-    <DirectPlayProfile container="avi,mp4,mkv,ts,mpegts,m4v" type="Video" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Linksys DMA2100</Name>
+    <Identification>
+        <ModelName>DMA2100us</ModelName>
+        <Headers />
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mp3,flac,m4a,wma" type="Audio" />
+        <DirectPlayProfile container="avi,mp4,mkv,ts,mpegts,m4v" type="Video" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 60 - 59
Emby.Dlna/Profiles/Xml/Marantz.xml

@@ -1,61 +1,62 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Marantz</Name>
-  <Identification>
-    <Manufacturer>Marantz</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="Marantz" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="aac,mp3,wav,wma,flac" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles />
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="sub" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="ass" method="Embed" />
-    <SubtitleProfile format="ssa" method="Embed" />
-    <SubtitleProfile format="smi" method="Embed" />
-    <SubtitleProfile format="dvdsub" method="Embed" />
-    <SubtitleProfile format="pgs" method="Embed" />
-    <SubtitleProfile format="pgssub" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="vtt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Marantz</Name>
+    <Identification>
+        <Manufacturer>Marantz</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="Marantz" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="aac,mp3,wav,wma,flac" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles />
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="sub" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="ass" method="Embed" />
+        <SubtitleProfile format="ssa" method="Embed" />
+        <SubtitleProfile format="smi" method="Embed" />
+        <SubtitleProfile format="dvdsub" method="Embed" />
+        <SubtitleProfile format="pgs" method="Embed" />
+        <SubtitleProfile format="pgssub" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="vtt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 60 - 59
Emby.Dlna/Profiles/Xml/MediaMonkey.xml

@@ -1,61 +1,62 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>MediaMonkey</Name>
-  <Identification>
-    <FriendlyName>MediaMonkey</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="MediaMonkey" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles />
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="sub" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="ass" method="Embed" />
-    <SubtitleProfile format="ssa" method="Embed" />
-    <SubtitleProfile format="smi" method="Embed" />
-    <SubtitleProfile format="dvdsub" method="Embed" />
-    <SubtitleProfile format="pgs" method="Embed" />
-    <SubtitleProfile format="pgssub" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="vtt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>MediaMonkey</Name>
+    <Identification>
+        <FriendlyName>MediaMonkey</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="MediaMonkey" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles />
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="sub" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="ass" method="Embed" />
+        <SubtitleProfile format="ssa" method="Embed" />
+        <SubtitleProfile format="smi" method="Embed" />
+        <SubtitleProfile format="dvdsub" method="Embed" />
+        <SubtitleProfile format="pgs" method="Embed" />
+        <SubtitleProfile format="pgssub" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="vtt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 85 - 84
Emby.Dlna/Profiles/Xml/Panasonic Viera.xml

@@ -1,86 +1,87 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Panasonic Viera</Name>
-  <Identification>
-    <FriendlyName>VIERA</FriendlyName>
-    <Manufacturer>Panasonic</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="Panasonic MIL DLNA" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mpeg,mpg" audioCodec="ac3,mp3,pcm_dvd" videoCodec="mpeg2video,mpeg4" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="aac,ac3,dca,mp3,mp2,pcm,dts" videoCodec="h264,mpeg2video" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="aac,mp3,mp2" videoCodec="h264,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,mp3,pcm" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="mov" audioCodec="aac,pcm" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="flv" audioCodec="aac" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="srt" method="External" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Panasonic Viera</Name>
+    <Identification>
+        <FriendlyName>VIERA</FriendlyName>
+        <Manufacturer>Panasonic</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="Panasonic MIL DLNA" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>10</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:pv" value="http://www.pv.com/pvns/" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mpeg,mpg" audioCodec="ac3,mp3,pcm_dvd" videoCodec="mpeg2video,mpeg4" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="aac,ac3,dca,mp3,mp2,pcm,dts" videoCodec="h264,mpeg2video" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="aac,mp3,mp2" videoCodec="h264,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="aac,ac3,mp3,pcm" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="mov" audioCodec="aac,pcm" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="flv" audioCodec="aac" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="srt" method="External" />
+    </SubtitleProfiles>
 </Profile>

+ 91 - 90
Emby.Dlna/Profiles/Xml/Popcorn Hour.xml

@@ -1,91 +1,92 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Popcorn Hour</Name>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mp4,mov,m4v" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="aac,ac3,eac3,mp3,mp2,pcm" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="asf,wmv" audioCodec="wmav2,wmapro" videoCodec="wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="mp3,ac3,eac3,mp2,pcm" videoCodec="mpeg4,msmpeg4" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="aac,mp3,ac3,eac3,mp2,pcm" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="aac,mp3,flac,ogg,wma,wav" type="Audio" />
-    <DirectPlayProfile container="jpeg,gif,bmp,png" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="EqualsAny" property="VideoProfile" value="baseline|constrained baseline" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Audio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Audio" codec="mp3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="320000" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Popcorn Hour</Name>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mp4,mov,m4v" audioCodec="aac" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="aac,ac3,eac3,mp3,mp2,pcm" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="asf,wmv" audioCodec="wmav2,wmapro" videoCodec="wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="mp3,ac3,eac3,mp2,pcm" videoCodec="mpeg4,msmpeg4" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="aac,mp3,ac3,eac3,mp2,pcm" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="aac,mp3,flac,ogg,wma,wav" type="Audio" />
+        <DirectPlayProfile container="jpeg,gif,bmp,png" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="mp4" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="EqualsAny" property="VideoProfile" value="baseline|constrained baseline" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Audio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Audio" codec="mp3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="320000" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 127 - 126
Emby.Dlna/Profiles/Xml/Samsung Smart TV.xml

@@ -1,127 +1,128 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Samsung Smart TV</Name>
-  <Identification>
-    <ModelUrl>samsung.com</ModelUrl>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="SEC_" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="asf" audioCodec="mp3,ac3,wmav2,wmapro,wmavoice" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="mp3,ac3,dca,dts" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="mp3,ac3,dca,aac,dts" videoCodec="h264,mpeg4,mjpeg4" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="mp3,aac" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="3gp" audioCodec="aac,he-aac" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="mpg,mpeg" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-    <DirectPlayProfile container="vro,vob" audioCodec="ac3,mp2,mp3" videoCodec="mpeg1video,mpeg2video" type="Video" />
-    <DirectPlayProfile container="ts" audioCodec="ac3,aac,mp3,eac3" videoCodec="mpeg2video,h264,vc1" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmavoice" videoCodec="wmv2,wmv3" type="Video" />
-    <DirectPlayProfile container="mp3,flac" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="mpeg2video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="30720000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="mpeg4">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="37500000" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="25600000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="wmav2,dca,aac,mp3,dts">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="avi" type="Video" mimeType="video/x-msvideo">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mkv" type="Video" mimeType="video/x-mkv">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="flac" type="Audio" mimeType="audio/x-flac">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="srt" method="External" didlMode="CaptionInfoEx" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Samsung Smart TV</Name>
+    <Identification>
+        <ModelUrl>samsung.com</ModelUrl>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="SEC_" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:sec" value="http://www.sec.co.kr/" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="asf" audioCodec="mp3,ac3,wmav2,wmapro,wmavoice" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="mp3,ac3,dca,dts" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="mp3,ac3,dca,aac,dts" videoCodec="h264,mpeg4,mjpeg4" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="mp3,aac" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="3gp" audioCodec="aac,he-aac" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="mpg,mpeg" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+        <DirectPlayProfile container="vro,vob" audioCodec="ac3,mp2,mp3" videoCodec="mpeg1video,mpeg2video" type="Video" />
+        <DirectPlayProfile container="ts" audioCodec="ac3,aac,mp3,eac3" videoCodec="mpeg2video,h264,vc1" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmavoice" videoCodec="wmv2,wmv3" type="Video" />
+        <DirectPlayProfile container="mp3,flac" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="mpeg2video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="30720000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="mpeg4">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="8192000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="37500000" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="25600000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="wmav2,dca,aac,mp3,dts">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="avi" type="Video" mimeType="video/x-msvideo">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mkv" type="Video" mimeType="video/x-mkv">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="flac" type="Audio" mimeType="audio/x-flac">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="srt" method="External" didlMode="CaptionInfoEx" />
+    </SubtitleProfiles>
+</Profile>

+ 59 - 58
Emby.Dlna/Profiles/Xml/Sharp Smart TV.xml

@@ -1,59 +1,60 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sharp Smart TV</Name>
-  <Identification>
-    <Manufacturer>Sharp</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="Sharp" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
-  <RequiresPlainFolders>true</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="m4v,mkv,avi,mov,mp4" audioCodec="aac,mp3,ac3,dts,dca" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="asf,wmv" type="Video" />
-    <DirectPlayProfile container="mpg,mpeg" audioCodec="mp3,aac" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="flv" audioCodec="mp3,aac" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="mp3,wav" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3,dts,dca" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="srt" method="External" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sharp Smart TV</Name>
+    <Identification>
+        <Manufacturer>Sharp</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="Sharp" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>true</RequiresPlainVideoItems>
+    <RequiresPlainFolders>true</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="m4v,mkv,avi,mov,mp4" audioCodec="aac,mp3,ac3,dts,dca" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="asf,wmv" type="Video" />
+        <DirectPlayProfile container="mpg,mpeg" audioCodec="mp3,aac" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="flv" audioCodec="mp3,aac" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="mp3,wav" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3,dts,dca" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="srt" method="External" />
+    </SubtitleProfiles>
+</Profile>

File diff suppressed because it is too large
+ 0 - 31
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2013.xml


File diff suppressed because it is too large
+ 0 - 31
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2014.xml


File diff suppressed because it is too large
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2015.xml


File diff suppressed because it is too large
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player 2016.xml


File diff suppressed because it is too large
+ 0 - 29
Emby.Dlna/Profiles/Xml/Sony Blu-ray Player.xml


+ 132 - 131
Emby.Dlna/Profiles/Xml/Sony Bravia (2010).xml

@@ -1,132 +1,133 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony Bravia (2010)</Name>
-  <Identification>
-    <FriendlyName>KDL-\d{2}[EHLNPB]X\d[01]\d.*</FriendlyName>
-    <Manufacturer>Sony</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[EHLNPB]X\d[01]\d.*" match="Regex" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Microsoft Corporation</Manufacturer>
-  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-  <ModelName>Windows Media Player Sharing</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>3.0</ModelNumber>
-  <ModelUrl>http://www.microsoft.com/</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=81500000000000000000000000000000,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00D00000000000000000000000000000,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=81500000000000000000000000000000</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="mpeg2video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="mp3,mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony Bravia (2010)</Name>
+    <Identification>
+        <FriendlyName>KDL-\d{2}[EHLNPB]X\d[01]\d.*</FriendlyName>
+        <Manufacturer>Sony</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[EHLNPB]X\d[01]\d.*" match="Regex" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Microsoft Corporation</Manufacturer>
+    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+    <ModelName>Windows Media Player Sharing</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>3.0</ModelNumber>
+    <ModelUrl>http://www.microsoft.com/</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=81500000000000000000000000000000,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00D00000000000000000000000000000,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=81500000000000000000000000000000</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="mpeg2video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="mp3,mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 138 - 137
Emby.Dlna/Profiles/Xml/Sony Bravia (2011).xml

@@ -1,138 +1,139 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony Bravia (2011)</Name>
-  <Identification>
-    <FriendlyName>KDL-\d{2}([A-Z]X\d2\d|CX400).*</FriendlyName>
-    <Manufacturer>Sony</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}([A-Z]X\d2\d|CX400).*" match="Regex" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Microsoft Corporation</Manufacturer>
-  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-  <ModelName>Windows Media Player Sharing</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>3.0</ModelNumber>
-  <ModelUrl>http://www.microsoft.com/</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp3" videoCodec="mpeg2video,mpeg1video" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="mpeg2video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="mp3,mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony Bravia (2011)</Name>
+    <Identification>
+        <FriendlyName>KDL-\d{2}([A-Z]X\d2\d|CX400).*</FriendlyName>
+        <Manufacturer>Sony</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}([A-Z]X\d2\d|CX400).*" match="Regex" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Microsoft Corporation</Manufacturer>
+    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+    <ModelName>Windows Media Player Sharing</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>3.0</ModelNumber>
+    <ModelUrl>http://www.microsoft.com/</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp3" videoCodec="mpeg2video,mpeg1video" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="mpeg2video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="20000000" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="mp3,mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 114 - 113
Emby.Dlna/Profiles/Xml/Sony Bravia (2012).xml

@@ -1,114 +1,115 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony Bravia (2012)</Name>
-  <Identification>
-    <FriendlyName>KDL-\d{2}[A-Z]X\d5(\d|G).*</FriendlyName>
-    <Manufacturer>Sony</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[A-Z]X\d5(\d|G).*" match="Regex" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Microsoft Corporation</Manufacturer>
-  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-  <ModelName>Windows Media Player Sharing</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>3.0</ModelNumber>
-  <ModelUrl>http://www.microsoft.com/</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="mp3,mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony Bravia (2012)</Name>
+    <Identification>
+        <FriendlyName>KDL-\d{2}[A-Z]X\d5(\d|G).*</FriendlyName>
+        <Manufacturer>Sony</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[A-Z]X\d5(\d|G).*" match="Regex" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Microsoft Corporation</Manufacturer>
+    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+    <ModelName>Windows Media Player Sharing</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>3.0</ModelNumber>
+    <ModelUrl>http://www.microsoft.com/</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="mp3,mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 113 - 112
Emby.Dlna/Profiles/Xml/Sony Bravia (2013).xml

@@ -1,113 +1,114 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony Bravia (2013)</Name>
-  <Identification>
-    <FriendlyName>KDL-\d{2}[WR][5689]\d{2}A.*</FriendlyName>
-    <Manufacturer>Sony</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[WR][5689]\d{2}A.*" match="Regex" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Microsoft Corporation</Manufacturer>
-  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-  <ModelName>Windows Media Player Sharing</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>3.0</ModelNumber>
-  <ModelUrl>http://www.microsoft.com/</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-    <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="mp3,mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony Bravia (2013)</Name>
+    <Identification>
+        <FriendlyName>KDL-\d{2}[WR][5689]\d{2}A.*</FriendlyName>
+        <Manufacturer>Sony</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="X-AV-Client-Info" value=".*KDL-\d{2}[WR][5689]\d{2}A.*" match="Regex" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Microsoft Corporation</Manufacturer>
+    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+    <ModelName>Windows Media Player Sharing</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>3.0</ModelNumber>
+    <ModelUrl>http://www.microsoft.com/</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+        <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="mp3,mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 113 - 112
Emby.Dlna/Profiles/Xml/Sony Bravia (2014).xml

@@ -1,113 +1,114 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony Bravia (2014)</Name>
-  <Identification>
-    <FriendlyName>(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*</FriendlyName>
-    <Manufacturer>Sony</Manufacturer>
-    <Headers>
-      <HttpHeaderInfo name="X-AV-Client-Info" value=".*(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*" match="Regex" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Microsoft Corporation</Manufacturer>
-  <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
-  <ModelName>Windows Media Player Sharing</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>3.0</ModelNumber>
-  <ModelUrl>http://www.microsoft.com/</ModelUrl>
-  <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes>
-    <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
-  </XmlRootAttributes>
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
-    <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="mp3,mp2">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
-        <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
-      </Conditions>
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony Bravia (2014)</Name>
+    <Identification>
+        <FriendlyName>(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*</FriendlyName>
+        <Manufacturer>Sony</Manufacturer>
+        <Headers>
+            <HttpHeaderInfo name="X-AV-Client-Info" value=".*(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*" match="Regex" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Microsoft Corporation</Manufacturer>
+    <ManufacturerUrl>http://www.microsoft.com/</ManufacturerUrl>
+    <ModelName>Windows Media Player Sharing</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>3.0</ModelNumber>
+    <ModelUrl>http://www.microsoft.com/</ModelUrl>
+    <EnableAlbumArtInDidl>true</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes>
+        <XmlAttribute name="xmlns:av" value="urn:schemas-sony-com:av" />
+    </XmlRootAttributes>
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,eac3,aac,mp3" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="mp3,mp2" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,m4v" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="mov" audioCodec="ac3,eac3,aac,mp3,mp2" videoCodec="h264,mpeg4,mjpeg" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,aac,mp3,mp2,pcm,vorbis" videoCodec="h264,mpeg4,vp8" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="pcm" videoCodec="mjpeg" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp3,mp2" videoCodec="mpeg2video,mpeg1video" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" videoCodec="wmv2,wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="mp4" audioCodec="aac" type="Audio" />
+        <DirectPlayProfile container="wav" audioCodec="pcm" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3" estimateContentLength="false" enableMpegtsM2TsMode="true" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="mp3,mp2">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="192" isRequired="true" />
+                <ProfileCondition condition="Equals" property="VideoTimestamp" value="Valid" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO" mimeType="video/mpeg">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="PacketLength" value="188" isRequired="true" />
+            </Conditions>
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264" type="Video" orgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="ts,mpegts" videoCodec="mpeg2video" type="Video" orgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO" mimeType="video/vnd.dlna.mpeg-tts">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="mpeg" videoCodec="mpeg1video,mpeg2video" type="Video" orgPn="MPEG_PS_NTSC,MPEG_PS_PAL" mimeType="video/mpeg">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 104 - 103
Emby.Dlna/Profiles/Xml/Sony PlayStation 3.xml

@@ -1,104 +1,105 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony PlayStation 3</Name>
-  <Identification>
-    <FriendlyName>PLAYSTATION 3</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 3" match="Substring" />
-      <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 3" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
-    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="wmapro">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony PlayStation 3</Name>
+    <Identification>
+        <FriendlyName>PLAYSTATION 3</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 3" match="Substring" />
+            <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 3" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
+        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="ac3,aac,mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="wmapro">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 107 - 106
Emby.Dlna/Profiles/Xml/Sony PlayStation 4.xml

@@ -1,107 +1,108 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Sony PlayStation 4</Name>
-  <Identification>
-    <FriendlyName>PLAYSTATION 4</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 4" match="Substring" />
-      <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 4" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_TN</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <SonyAggregationFlags>10</SonyAggregationFlags>
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp4,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
-    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Bytes" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="wmapro">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Sony PlayStation 4</Name>
+    <Identification>
+        <FriendlyName>PLAYSTATION 4</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="PLAYSTATION 4" match="Substring" />
+            <HttpHeaderInfo name="X-AV-Client-Info" value="PLAYSTATION 4" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>true</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_TN</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <SonyAggregationFlags>10</SonyAggregationFlags>
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="avi" audioCodec="mp2,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,mp2,mp3,aac" videoCodec="mpeg1video,mpeg2video,h264" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="mp2" videoCodec="mpeg1video,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp4,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="aac,mp3,wav" type="Audio" />
+        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Bytes" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="AudioBitrate" value="640000" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="wmapro">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="AudioProfile" value="he-aac" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="mp4,mov" audioCodec="aac" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="avi" type="Video" orgPn="AVI" mimeType="video/divx">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="wav" type="Audio" mimeType="audio/wav">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 93 - 92
Emby.Dlna/Profiles/Xml/WDTV Live.xml

@@ -1,93 +1,94 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>WDTV Live</Name>
-  <Identification>
-    <ModelName>WD TV</ModelName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="alphanetworks" match="Substring" />
-      <HttpHeaderInfo name="User-Agent" value="ALPHA Networks" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>5</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>true</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="avi" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
-    <DirectPlayProfile container="mpeg" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video" type="Video" />
-    <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,dca,aac,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
-    <DirectPlayProfile container="ts,m2ts,mpegts" audioCodec="ac3,eac3,dca,mp2,mp3,aac,dts" videoCodec="mpeg1video,mpeg2video,h264,vc1" type="Video" />
-    <DirectPlayProfile container="mp4,mov,m4v" audioCodec="ac3,eac3,aac,mp2,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="vc1" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="mp2,ac3" videoCodec="mpeg2video" type="Video" />
-    <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
-    <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
-    <DirectPlayProfile container="flac" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
-    <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Photo">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_NA">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="idx" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>WDTV Live</Name>
+    <Identification>
+        <ModelName>WD TV</ModelName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="alphanetworks" match="Substring" />
+            <HttpHeaderInfo name="User-Agent" value="ALPHA Networks" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>5</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>true</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="avi" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
+        <DirectPlayProfile container="mpeg" audioCodec="ac3,eac3,dca,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video" type="Video" />
+        <DirectPlayProfile container="mkv" audioCodec="ac3,eac3,dca,aac,mp2,mp3,pcm,dts" videoCodec="mpeg1video,mpeg2video,mpeg4,h264,vc1" type="Video" />
+        <DirectPlayProfile container="ts,m2ts,mpegts" audioCodec="ac3,eac3,dca,mp2,mp3,aac,dts" videoCodec="mpeg1video,mpeg2video,h264,vc1" type="Video" />
+        <DirectPlayProfile container="mp4,mov,m4v" audioCodec="ac3,eac3,aac,mp2,mp3,dca,dts" videoCodec="h264,mpeg4" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="vc1" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="mp2,ac3" videoCodec="mpeg2video" type="Video" />
+        <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
+        <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
+        <DirectPlayProfile container="flac" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
+        <DirectPlayProfile container="jpeg,png,gif,bmp,tiff" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Photo">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="true" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="ts,mpegts" type="Video" orgPn="MPEG_TS_SD_NA">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="idx" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 125 - 124
Emby.Dlna/Profiles/Xml/Xbox One.xml

@@ -1,125 +1,126 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>Xbox One</Name>
-  <Identification>
-    <ModelName>Xbox One</ModelName>
-    <Headers>
-      <HttpHeaderInfo name="FriendlyName.DLNA.ORG" value="XboxOne" match="Substring" />
-      <HttpHeaderInfo name="User-Agent" value="NSPlayer/12" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>40</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg2video,hevc" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
-    <DirectPlayProfile container="avi" audioCodec="aac" videoCodec="h264" type="Video" />
-    <DirectPlayProfile container="mp4,mov,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4,mpeg2video,hevc" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="wmv2,wmv3,vc1" type="Video" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
-    <DirectPlayProfile container="jpeg" type="Photo" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" videoCodec="jpeg" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles>
-    <ContainerProfile type="Video" container="mp4,mov">
-      <Conditions>
-        <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
-      </Conditions>
-    </ContainerProfile>
-  </ContainerProfiles>
-  <CodecProfiles>
-    <CodecProfile type="Video" codec="mpeg4">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="5120000" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="h264">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
-        <ProfileCondition condition="EqualsAny" property="VideoProfile" value="high|main|baseline|constrained baseline" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
-        <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="Video">
-      <Conditions>
-        <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
-        <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="ac3,wmav2,wmapro">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-    <CodecProfile type="VideoAudio" codec="aac">
-      <Conditions>
-        <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
-        <ProfileCondition condition="Equals" property="AudioProfile" value="lc" isRequired="false" />
-      </Conditions>
-      <ApplyConditions />
-    </CodecProfile>
-  </CodecProfiles>
-  <ResponseProfiles>
-    <ResponseProfile container="avi" type="Video" mimeType="video/avi">
-      <Conditions />
-    </ResponseProfile>
-    <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
-      <Conditions />
-    </ResponseProfile>
-  </ResponseProfiles>
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="Embed" />
-  </SubtitleProfiles>
-</Profile>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>Xbox One</Name>
+    <Identification>
+        <ModelName>Xbox One</ModelName>
+        <Headers>
+            <HttpHeaderInfo name="FriendlyName.DLNA.ORG" value="XboxOne" match="Substring" />
+            <HttpHeaderInfo name="User-Agent" value="NSPlayer/12" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>40</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="ts,mpegts" audioCodec="ac3,aac,mp3" videoCodec="h264,mpeg2video,hevc" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="ac3,mp3" videoCodec="mpeg4" type="Video" />
+        <DirectPlayProfile container="avi" audioCodec="aac" videoCodec="h264" type="Video" />
+        <DirectPlayProfile container="mp4,mov,mkv,m4v" audioCodec="aac,ac3" videoCodec="h264,mpeg4,mpeg2video,hevc" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro" videoCodec="wmv2,wmv3,vc1" type="Video" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="mp3" audioCodec="mp3" type="Audio" />
+        <DirectPlayProfile container="jpeg" type="Photo" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" videoCodec="jpeg" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles>
+        <ContainerProfile type="Video" container="mp4,mov">
+            <Conditions>
+                <ProfileCondition condition="Equals" property="Has64BitOffsets" value="false" isRequired="false" />
+            </Conditions>
+        </ContainerProfile>
+    </ContainerProfiles>
+    <CodecProfiles>
+        <CodecProfile type="Video" codec="mpeg4">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="5120000" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="h264">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoLevel" value="41" isRequired="false" />
+                <ProfileCondition condition="EqualsAny" property="VideoProfile" value="high|main|baseline|constrained baseline" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video" codec="wmv2,wmv3,vc1">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="Width" value="1920" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="Height" value="1080" isRequired="true" />
+                <ProfileCondition condition="LessThanEqual" property="VideoFramerate" value="30" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitrate" value="15360000" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="Video">
+            <Conditions>
+                <ProfileCondition condition="NotEquals" property="IsAnamorphic" value="true" isRequired="false" />
+                <ProfileCondition condition="LessThanEqual" property="VideoBitDepth" value="8" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="ac3,wmav2,wmapro">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="6" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+        <CodecProfile type="VideoAudio" codec="aac">
+            <Conditions>
+                <ProfileCondition condition="LessThanEqual" property="AudioChannels" value="2" isRequired="false" />
+                <ProfileCondition condition="Equals" property="AudioProfile" value="lc" isRequired="false" />
+            </Conditions>
+            <ApplyConditions />
+        </CodecProfile>
+    </CodecProfiles>
+    <ResponseProfiles>
+        <ResponseProfile container="avi" type="Video" mimeType="video/avi">
+            <Conditions />
+        </ResponseProfile>
+        <ResponseProfile container="m4v" type="Video" mimeType="video/mp4">
+            <Conditions />
+        </ResponseProfile>
+    </ResponseProfiles>
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="Embed" />
+    </SubtitleProfiles>
+</Profile>

+ 65 - 64
Emby.Dlna/Profiles/Xml/foobar2000.xml

@@ -1,66 +1,67 @@
 <?xml version="1.0"?>
-<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-  <Name>foobar2000</Name>
-  <Identification>
-    <FriendlyName>foobar</FriendlyName>
-    <Headers>
-      <HttpHeaderInfo name="User-Agent" value="foobar" match="Substring" />
-    </Headers>
-  </Identification>
-  <Manufacturer>Jellyfin</Manufacturer>
-  <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
-  <ModelName>Jellyfin Server</ModelName>
-  <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
-  <ModelNumber>01</ModelNumber>
-  <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
-  <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
-  <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
-  <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
-  <SupportedMediaTypes>Audio</SupportedMediaTypes>
-  <AlbumArtPn>JPEG_SM</AlbumArtPn>
-  <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
-  <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
-  <MaxIconWidth>48</MaxIconWidth>
-  <MaxIconHeight>48</MaxIconHeight>
-  <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
-  <MaxStaticBitrate>140000000</MaxStaticBitrate>
-  <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
-  <MaxStaticMusicBitrate xsi:nil="true" />
-  <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
-  <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
-  <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
-  <RequiresPlainFolders>false</RequiresPlainFolders>
-  <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
-  <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
-  <XmlRootAttributes />
-  <DirectPlayProfiles>
-    <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
-    <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
-    <DirectPlayProfile container="aac,wav" type="Audio" />
-    <DirectPlayProfile container="flac" audioCodec="flac" type="Audio" />
-    <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
-    <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
-  </DirectPlayProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
-  </TranscodingProfiles>
-  <ContainerProfiles />
-  <CodecProfiles />
-  <ResponseProfiles />
-  <SubtitleProfiles>
-    <SubtitleProfile format="srt" method="External" />
-    <SubtitleProfile format="sub" method="External" />
-    <SubtitleProfile format="srt" method="Embed" />
-    <SubtitleProfile format="ass" method="Embed" />
-    <SubtitleProfile format="ssa" method="Embed" />
-    <SubtitleProfile format="smi" method="Embed" />
-    <SubtitleProfile format="dvdsub" method="Embed" />
-    <SubtitleProfile format="pgs" method="Embed" />
-    <SubtitleProfile format="pgssub" method="Embed" />
-    <SubtitleProfile format="sub" method="Embed" />
-    <SubtitleProfile format="subrip" method="Embed" />
-    <SubtitleProfile format="vtt" method="Embed" />
-  </SubtitleProfiles>
+<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <Name>foobar2000</Name>
+    <Identification>
+        <FriendlyName>foobar</FriendlyName>
+        <Headers>
+            <HttpHeaderInfo name="User-Agent" value="foobar" match="Substring" />
+        </Headers>
+    </Identification>
+    <Manufacturer>Jellyfin</Manufacturer>
+    <ManufacturerUrl>https://github.com/jellyfin/jellyfin</ManufacturerUrl>
+    <ModelName>Jellyfin Server</ModelName>
+    <ModelDescription>UPnP/AV 1.0 Compliant Media Server</ModelDescription>
+    <ModelNumber>01</ModelNumber>
+    <ModelUrl>https://github.com/jellyfin/jellyfin</ModelUrl>
+    <EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
+    <EnableSingleAlbumArtLimit>false</EnableSingleAlbumArtLimit>
+    <EnableSingleSubtitleLimit>false</EnableSingleSubtitleLimit>
+    <SupportedMediaTypes>Audio</SupportedMediaTypes>
+    <AlbumArtPn>JPEG_SM</AlbumArtPn>
+    <MaxAlbumArtWidth>480</MaxAlbumArtWidth>
+    <MaxAlbumArtHeight>480</MaxAlbumArtHeight>
+    <MaxIconWidth>48</MaxIconWidth>
+    <MaxIconHeight>48</MaxIconHeight>
+    <MaxStreamingBitrate>140000000</MaxStreamingBitrate>
+    <MaxStaticBitrate>140000000</MaxStaticBitrate>
+    <MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
+    <MaxStaticMusicBitrate xsi:nil="true" />
+    <ProtocolInfo>http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*</ProtocolInfo>
+    <TimelineOffsetSeconds>0</TimelineOffsetSeconds>
+    <RequiresPlainVideoItems>false</RequiresPlainVideoItems>
+    <RequiresPlainFolders>false</RequiresPlainFolders>
+    <EnableMSMediaReceiverRegistrar>false</EnableMSMediaReceiverRegistrar>
+    <IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
+    <XmlRootAttributes />
+    <DirectPlayProfiles>
+        <DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
+        <DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
+        <DirectPlayProfile container="aac,wav" type="Audio" />
+        <DirectPlayProfile container="flac" audioCodec="flac" type="Audio" />
+        <DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
+        <DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
+    </DirectPlayProfiles>
+    <TranscodingProfiles>
+        <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+        <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
+    </TranscodingProfiles>
+    <ContainerProfiles />
+    <CodecProfiles />
+    <ResponseProfiles />
+    <SubtitleProfiles>
+        <SubtitleProfile format="srt" method="External" />
+        <SubtitleProfile format="sub" method="External" />
+        <SubtitleProfile format="srt" method="Embed" />
+        <SubtitleProfile format="ass" method="Embed" />
+        <SubtitleProfile format="ssa" method="Embed" />
+        <SubtitleProfile format="smi" method="Embed" />
+        <SubtitleProfile format="dvdsub" method="Embed" />
+        <SubtitleProfile format="pgs" method="Embed" />
+        <SubtitleProfile format="pgssub" method="Embed" />
+        <SubtitleProfile format="sub" method="Embed" />
+        <SubtitleProfile format="subrip" method="Embed" />
+        <SubtitleProfile format="vtt" method="Embed" />
+    </SubtitleProfiles>
 </Profile>

+ 16 - 16
Emby.Drawing.Skia/Emby.Drawing.Skia.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <PackageReference Include="SkiaSharp" Version="1.68.0" />
-    <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="1.68.0" />
-  </ItemGroup>
+    <ItemGroup>
+        <PackageReference Include="SkiaSharp" Version="1.68.0" />
+        <PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="1.68.0" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
 </Project>

+ 11 - 11
Emby.Drawing/Emby.Drawing.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 12 - 12
Emby.IsoMounting/IsoMounter/IsoMounter.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-  </ItemGroup>
-  
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    </ItemGroup>
+
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 12 - 12
Emby.Naming/Emby.Naming.csproj

@@ -1,16 +1,16 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
+
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
-  
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-  </ItemGroup>
-    
 </Project>

+ 12 - 12
Emby.Notifications/Emby.Notifications.csproj

@@ -1,18 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    </ItemGroup>
 
 </Project>

+ 12 - 12
Emby.Photos/Emby.Photos.csproj

@@ -1,18 +1,18 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\ThirdParty\taglib-sharp\src\taglib-sharp.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\ThirdParty\taglib-sharp\src\taglib-sharp.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 42 - 42
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -1,50 +1,50 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <ProjectReference Include="..\Emby.Naming\Emby.Naming.csproj" />
-    <ProjectReference Include="..\Emby.Notifications\Emby.Notifications.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj" />
-    <ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj" />
-    <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj" />
-    <ProjectReference Include="..\SocketHttpListener\SocketHttpListener.csproj" />
-    <ProjectReference Include="..\Emby.Dlna\Emby.Dlna.csproj" />
-    <ProjectReference Include="..\Mono.Nat\Mono.Nat.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj" />
-    <ProjectReference Include="..\MediaBrowser.LocalMetadata\MediaBrowser.LocalMetadata.csproj" />
-    <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
-    <ProjectReference Include="..\Emby.Photos\Emby.Photos.csproj" />
-    <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
-    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv\Emby.XmlTv.csproj" />
-    <ProjectReference Include="..\MediaBrowser.MediaEncoding\MediaBrowser.MediaEncoding.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\Emby.Naming\Emby.Naming.csproj" />
+        <ProjectReference Include="..\Emby.Notifications\Emby.Notifications.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Providers\MediaBrowser.Providers.csproj" />
+        <ProjectReference Include="..\MediaBrowser.WebDashboard\MediaBrowser.WebDashboard.csproj" />
+        <ProjectReference Include="..\MediaBrowser.XbmcMetadata\MediaBrowser.XbmcMetadata.csproj" />
+        <ProjectReference Include="..\SocketHttpListener\SocketHttpListener.csproj" />
+        <ProjectReference Include="..\Emby.Dlna\Emby.Dlna.csproj" />
+        <ProjectReference Include="..\Mono.Nat\Mono.Nat.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Api\MediaBrowser.Api.csproj" />
+        <ProjectReference Include="..\MediaBrowser.LocalMetadata\MediaBrowser.LocalMetadata.csproj" />
+        <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
+        <ProjectReference Include="..\Emby.Photos\Emby.Photos.csproj" />
+        <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
+        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv\Emby.XmlTv.csproj" />
+        <ProjectReference Include="..\MediaBrowser.MediaEncoding\MediaBrowser.MediaEncoding.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <PackageReference Include="ServiceStack.Text.Core" Version="5.4.0" />
-    <PackageReference Include="sharpcompress" Version="0.22.0" />
-    <PackageReference Include="SimpleInjector" Version="4.4.2" />
-    <PackageReference Include="SQLitePCL.pretty.core" Version="1.1.8" />
-    <PackageReference Include="SQLitePCLRaw.core" Version="1.1.11" />
-  </ItemGroup>
+    <ItemGroup>
+        <PackageReference Include="ServiceStack.Text.Core" Version="5.4.0" />
+        <PackageReference Include="sharpcompress" Version="0.22.0" />
+        <PackageReference Include="SimpleInjector" Version="4.4.2" />
+        <PackageReference Include="SQLitePCL.pretty.core" Version="1.1.8" />
+        <PackageReference Include="SQLitePCLRaw.core" Version="1.1.11" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <EmbeddedResource Include="Localization\iso6392.txt" />
-    <EmbeddedResource Include="Localization\countries.json" />
-    <EmbeddedResource Include="Localization\Core\*.json" />
-    <EmbeddedResource Include="TextEncoding\NLangDetect\Profiles\*" />
-    <EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" />
-    <EmbeddedResource Include="Localization\Ratings\*.txt" />
-  </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="Localization\iso6392.txt" />
+        <EmbeddedResource Include="Localization\countries.json" />
+        <EmbeddedResource Include="Localization\Core\*.json" />
+        <EmbeddedResource Include="TextEncoding\NLangDetect\Profiles\*" />
+        <EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" />
+        <EmbeddedResource Include="Localization\Ratings\*.txt" />
+    </ItemGroup>
 
 </Project>

+ 98 - 98
Emby.Server.Implementations/Localization/Core/ar.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "الألبومات",
-  "AppDeviceValues": "التطبيق: {0}. الجهاز: {1}.",
-  "Application": "التطبيق",
-  "Artists": "الفنانون",
-  "AuthenticationSucceededWithUserName": "تم التأكد من {0} بنجاح",
-  "Books": "الكتب",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "القنوات",
-  "ChapterNameValue": "الباب {0}",
-  "Collections": "المجاميع",
-  "DeviceOfflineWithName": "تم قطع الاتصال بـ{0}",
-  "DeviceOnlineWithName": "{0} متصل",
-  "FailedLoginAttemptWithUserName": "عملية تسجيل الدخول فشلت من {0}",
-  "Favorites": "المفضلات",
-  "Folders": "المجلدات",
-  "Games": "الألعاب",
-  "Genres": "أنواع الأفلام",
-  "HeaderAlbumArtists": "فنانو الألبومات",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "استئناف المشاهدة",
-  "HeaderFavoriteAlbums": "الألبومات المفضلة",
-  "HeaderFavoriteArtists": "الفنانون المفضلون",
-  "HeaderFavoriteEpisodes": "الحلقات المفضلة",
-  "HeaderFavoriteShows": "المسلسلات المفضلة",
-  "HeaderFavoriteSongs": "الأغاني المفضلة",
-  "HeaderLiveTV": "التلفاز المباشر",
-  "HeaderNextUp": "التشغيل التالي",
-  "HeaderRecordingGroups": "مجموعات التسجيل",
-  "HomeVideos": "الفيديوهات المنزلية",
-  "Inherit": "توريث",
-  "ItemAddedWithName": "تم إضافة {0} للمكتبة",
-  "ItemRemovedWithName": "تم إزالة {0} من المكتبة",
-  "LabelIpAddressValue": "عنوان الآي بي: {0}",
-  "LabelRunningTimeValue": "وقت التشغيل: {0}",
-  "Latest": "الأحدث",
-  "MessageApplicationUpdated": "لقد تم تحديث خادم أمبي",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "تم تحديث إعدادات الخادم في قسم {0}",
-  "MessageServerConfigurationUpdated": "تم تحديث إعدادات الخادم",
-  "MixedContent": "محتوى مخلوط",
-  "Movies": "الأفلام",
-  "Music": "الموسيقى",
-  "MusicVideos": "الفيديوهات الموسيقية",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "الموسم {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "يوجد تحديث للتطبيق",
-  "NotificationOptionApplicationUpdateInstalled": "تم تحديث التطبيق",
-  "NotificationOptionAudioPlayback": "بدأ تشغيل المقطع الصوتي",
-  "NotificationOptionAudioPlaybackStopped": "تم إيقاف تشغيل المقطع الصوتي",
-  "NotificationOptionCameraImageUploaded": "تم رقع صورة الكاميرا",
-  "NotificationOptionGamePlayback": "تم تشغيل اللعبة",
-  "NotificationOptionGamePlaybackStopped": "تم إيقاف تشغيل اللعبة",
-  "NotificationOptionInstallationFailed": "عملية التنصيب فشلت",
-  "NotificationOptionNewLibraryContent": "تم إضافة محتوى جديد",
-  "NotificationOptionPluginError": "فشل في الملحق",
-  "NotificationOptionPluginInstalled": "تم تثبيت الملحق",
-  "NotificationOptionPluginUninstalled": "تمت إزالة الملحق",
-  "NotificationOptionPluginUpdateInstalled": "تم تحديث الملحق",
-  "NotificationOptionServerRestartRequired": "يجب إعادة تشغيل الخادم",
-  "NotificationOptionTaskFailed": "فشل في المهمة المجدولة",
-  "NotificationOptionUserLockedOut": "تم إقفال حساب المستخدم",
-  "NotificationOptionVideoPlayback": "بدأ تشغيل الفيديو",
-  "NotificationOptionVideoPlaybackStopped": "تم إيقاف تشغيل الفيديو",
-  "Photos": "الصور",
-  "Playlists": "قوائم التشغيل",
-  "Plugin": "الملحق",
-  "PluginInstalledWithName": "تم تثبيت {0}",
-  "PluginUninstalledWithName": "تمت إزالة {0}",
-  "PluginUpdatedWithName": "تم تحديث {0}",
-  "ProviderValue": "المزود: {0}",
-  "ScheduledTaskFailedWithName": "العملية {0} فشلت",
-  "ScheduledTaskStartedWithName": "تم بدء {0}",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "الأغاني",
-  "StartupEmbyServerIsLoading": "خادم أمبي قيد التحميل. الرجاء المحاوية بعد حين",
-  "SubtitleDownloadFailureForItem": "عملية إنزال الترجمة فشلت لـ{0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "تم إنزال الترجمات لـ {0}",
-  "Sync": "مزامنة",
-  "System": "النظام",
-  "TvShows": "TV Shows",
-  "User": "المستخدم",
-  "UserCreatedWithName": "تم إنشاء المستخدم {0}",
-  "UserDeletedWithName": "تم حذف المستخدم {0}",
-  "UserDownloadingItemWithValues": "{0} يقوم بإنزال {1}",
-  "UserLockedOutWithName": "المستخدم {0} تم منعه من الدخول",
-  "UserOfflineFromDevice": "تم قطع اتصال {0} من {1}",
-  "UserOnlineFromDevice": "{0} متصلة عبر {1}",
-  "UserPasswordChangedWithName": "تم تغيير كلمة السر للمستخدم {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "قام {0} ببدء تشغيل {1}",
-  "UserStoppedPlayingItemWithValues": "قام {0} بإيقاف تشغيل {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "خاص - {0}",
-  "VersionNumber": "الإصدار رقم {0}"
+    "Albums": "الألبومات",
+    "AppDeviceValues": "التطبيق: {0}. الجهاز: {1}.",
+    "Application": "التطبيق",
+    "Artists": "الفنانون",
+    "AuthenticationSucceededWithUserName": "تم التأكد من {0} بنجاح",
+    "Books": "الكتب",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "القنوات",
+    "ChapterNameValue": "الباب {0}",
+    "Collections": "المجاميع",
+    "DeviceOfflineWithName": "تم قطع الاتصال بـ{0}",
+    "DeviceOnlineWithName": "{0} متصل",
+    "FailedLoginAttemptWithUserName": "عملية تسجيل الدخول فشلت من {0}",
+    "Favorites": "المفضلات",
+    "Folders": "المجلدات",
+    "Games": "الألعاب",
+    "Genres": "أنواع الأفلام",
+    "HeaderAlbumArtists": "فنانو الألبومات",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "استئناف المشاهدة",
+    "HeaderFavoriteAlbums": "الألبومات المفضلة",
+    "HeaderFavoriteArtists": "الفنانون المفضلون",
+    "HeaderFavoriteEpisodes": "الحلقات المفضلة",
+    "HeaderFavoriteShows": "المسلسلات المفضلة",
+    "HeaderFavoriteSongs": "الأغاني المفضلة",
+    "HeaderLiveTV": "التلفاز المباشر",
+    "HeaderNextUp": "التشغيل التالي",
+    "HeaderRecordingGroups": "مجموعات التسجيل",
+    "HomeVideos": "الفيديوهات المنزلية",
+    "Inherit": "توريث",
+    "ItemAddedWithName": "تم إضافة {0} للمكتبة",
+    "ItemRemovedWithName": "تم إزالة {0} من المكتبة",
+    "LabelIpAddressValue": "عنوان الآي بي: {0}",
+    "LabelRunningTimeValue": "وقت التشغيل: {0}",
+    "Latest": "الأحدث",
+    "MessageApplicationUpdated": "لقد تم تحديث خادم أمبي",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "تم تحديث إعدادات الخادم في قسم {0}",
+    "MessageServerConfigurationUpdated": "تم تحديث إعدادات الخادم",
+    "MixedContent": "محتوى مخلوط",
+    "Movies": "الأفلام",
+    "Music": "الموسيقى",
+    "MusicVideos": "الفيديوهات الموسيقية",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "الموسم {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "يوجد تحديث للتطبيق",
+    "NotificationOptionApplicationUpdateInstalled": "تم تحديث التطبيق",
+    "NotificationOptionAudioPlayback": "بدأ تشغيل المقطع الصوتي",
+    "NotificationOptionAudioPlaybackStopped": "تم إيقاف تشغيل المقطع الصوتي",
+    "NotificationOptionCameraImageUploaded": "تم رقع صورة الكاميرا",
+    "NotificationOptionGamePlayback": "تم تشغيل اللعبة",
+    "NotificationOptionGamePlaybackStopped": "تم إيقاف تشغيل اللعبة",
+    "NotificationOptionInstallationFailed": "عملية التنصيب فشلت",
+    "NotificationOptionNewLibraryContent": "تم إضافة محتوى جديد",
+    "NotificationOptionPluginError": "فشل في الملحق",
+    "NotificationOptionPluginInstalled": "تم تثبيت الملحق",
+    "NotificationOptionPluginUninstalled": "تمت إزالة الملحق",
+    "NotificationOptionPluginUpdateInstalled": "تم تحديث الملحق",
+    "NotificationOptionServerRestartRequired": "يجب إعادة تشغيل الخادم",
+    "NotificationOptionTaskFailed": "فشل في المهمة المجدولة",
+    "NotificationOptionUserLockedOut": "تم إقفال حساب المستخدم",
+    "NotificationOptionVideoPlayback": "بدأ تشغيل الفيديو",
+    "NotificationOptionVideoPlaybackStopped": "تم إيقاف تشغيل الفيديو",
+    "Photos": "الصور",
+    "Playlists": "قوائم التشغيل",
+    "Plugin": "الملحق",
+    "PluginInstalledWithName": "تم تثبيت {0}",
+    "PluginUninstalledWithName": "تمت إزالة {0}",
+    "PluginUpdatedWithName": "تم تحديث {0}",
+    "ProviderValue": "المزود: {0}",
+    "ScheduledTaskFailedWithName": "العملية {0} فشلت",
+    "ScheduledTaskStartedWithName": "تم بدء {0}",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "الأغاني",
+    "StartupEmbyServerIsLoading": "خادم أمبي قيد التحميل. الرجاء المحاوية بعد حين",
+    "SubtitleDownloadFailureForItem": "عملية إنزال الترجمة فشلت لـ{0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "تم إنزال الترجمات لـ {0}",
+    "Sync": "مزامنة",
+    "System": "النظام",
+    "TvShows": "TV Shows",
+    "User": "المستخدم",
+    "UserCreatedWithName": "تم إنشاء المستخدم {0}",
+    "UserDeletedWithName": "تم حذف المستخدم {0}",
+    "UserDownloadingItemWithValues": "{0} يقوم بإنزال {1}",
+    "UserLockedOutWithName": "المستخدم {0} تم منعه من الدخول",
+    "UserOfflineFromDevice": "تم قطع اتصال {0} من {1}",
+    "UserOnlineFromDevice": "{0} متصلة عبر {1}",
+    "UserPasswordChangedWithName": "تم تغيير كلمة السر للمستخدم {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "قام {0} ببدء تشغيل {1}",
+    "UserStoppedPlayingItemWithValues": "قام {0} بإيقاف تشغيل {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "خاص - {0}",
+    "VersionNumber": "الإصدار رقم {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/bg-BG.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Албуми",
-  "AppDeviceValues": "Програма: {0}, Устройство: {1}",
-  "Application": "Програма",
-  "Artists": "Изпълнители",
-  "AuthenticationSucceededWithUserName": "{0} се удостовери успешно",
-  "Books": "Книги",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Канали",
-  "ChapterNameValue": "Глава {0}",
-  "Collections": "Колекции",
-  "DeviceOfflineWithName": "{0} се разкачи",
-  "DeviceOnlineWithName": "{0} е свързан",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Любими",
-  "Folders": "Папки",
-  "Games": "Игри",
-  "Genres": "Жанрове",
-  "HeaderAlbumArtists": "Изпълнители на албуми",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Продължаване на гледането",
-  "HeaderFavoriteAlbums": "Любими албуми",
-  "HeaderFavoriteArtists": "Любими изпълнители",
-  "HeaderFavoriteEpisodes": "Любими епизоди",
-  "HeaderFavoriteShows": "Любими сериали",
-  "HeaderFavoriteSongs": "Любими песни",
-  "HeaderLiveTV": "Телевизия на живо",
-  "HeaderNextUp": "Следва",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Домашни клипове",
-  "Inherit": "Наследяване",
-  "ItemAddedWithName": "{0} е добавено към библиотеката",
-  "ItemRemovedWithName": "{0} е премахнато от библиотеката",
-  "LabelIpAddressValue": "ИП адрес: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Последни",
-  "MessageApplicationUpdated": "Сървърът е обновен",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Смесено съдържание",
-  "Movies": "Филми",
-  "Music": "Музика",
-  "MusicVideos": "Музикални клипове",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Сезон {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Налично е обновление на програмата",
-  "NotificationOptionApplicationUpdateInstalled": "Обновлението на програмата е инсталирано",
-  "NotificationOptionAudioPlayback": "Възпроизвеждането на звук започна",
-  "NotificationOptionAudioPlaybackStopped": "Възпроизвеждането на звук е спряно",
-  "NotificationOptionCameraImageUploaded": "Изображението от фотоапарата е качено",
-  "NotificationOptionGamePlayback": "Възпроизвеждането на играта започна",
-  "NotificationOptionGamePlaybackStopped": "Възпроизвеждането на играта е спряна",
-  "NotificationOptionInstallationFailed": "Неуспешно инсталиране",
-  "NotificationOptionNewLibraryContent": "Добавено е ново съдържание",
-  "NotificationOptionPluginError": "Грешка в приставка",
-  "NotificationOptionPluginInstalled": "Приставката е инсталирана",
-  "NotificationOptionPluginUninstalled": "Приставката е деинсталирана",
-  "NotificationOptionPluginUpdateInstalled": "Обновлението на приставката е инсталирано",
-  "NotificationOptionServerRestartRequired": "Нужно е повторно пускане на сървъра",
-  "NotificationOptionTaskFailed": "Грешка в планирана задача",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Възпроизвеждането на видео започна",
-  "NotificationOptionVideoPlaybackStopped": "Възпроизвеждането на видео е спряно",
-  "Photos": "Снимки",
-  "Playlists": "Списъци",
-  "Plugin": "Приставка",
-  "PluginInstalledWithName": "{0} е инсталирано",
-  "PluginUninstalledWithName": "{0} е деинсталирано",
-  "PluginUpdatedWithName": "{0} е обновено",
-  "ProviderValue": "Доставчик: {0}",
-  "ScheduledTaskFailedWithName": "{0} се провали",
-  "ScheduledTaskStartedWithName": "{0} започна",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Сериали",
-  "Songs": "Песни",
-  "StartupEmbyServerIsLoading": "Сървърът зарежда. Моля, опитайте отново след малко.",
-  "SubtitleDownloadFailureForItem": "Неуспешно изтегляне на субтитри за {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Изтеглени са субтитри за {0}",
-  "Sync": "Синхронизиране",
-  "System": "Система",
-  "TvShows": "Телевизионни сериали",
-  "User": "Потребител",
-  "UserCreatedWithName": "Потребителят {0} е създаден",
-  "UserDeletedWithName": "Потребителят {0} е изтрит",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} се разкачи от {1}",
-  "UserOnlineFromDevice": "{0} е на линия от {1}",
-  "UserPasswordChangedWithName": "Паролата на потребителя {0} е променена",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} пусна {1}",
-  "UserStoppedPlayingItemWithValues": "{0} спря {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Специални - {0}",
-  "VersionNumber": "Версия {0}"
+    "Albums": "Албуми",
+    "AppDeviceValues": "Програма: {0}, Устройство: {1}",
+    "Application": "Програма",
+    "Artists": "Изпълнители",
+    "AuthenticationSucceededWithUserName": "{0} се удостовери успешно",
+    "Books": "Книги",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Канали",
+    "ChapterNameValue": "Глава {0}",
+    "Collections": "Колекции",
+    "DeviceOfflineWithName": "{0} се разкачи",
+    "DeviceOnlineWithName": "{0} е свързан",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Любими",
+    "Folders": "Папки",
+    "Games": "Игри",
+    "Genres": "Жанрове",
+    "HeaderAlbumArtists": "Изпълнители на албуми",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Продължаване на гледането",
+    "HeaderFavoriteAlbums": "Любими албуми",
+    "HeaderFavoriteArtists": "Любими изпълнители",
+    "HeaderFavoriteEpisodes": "Любими епизоди",
+    "HeaderFavoriteShows": "Любими сериали",
+    "HeaderFavoriteSongs": "Любими песни",
+    "HeaderLiveTV": "Телевизия на живо",
+    "HeaderNextUp": "Следва",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Домашни клипове",
+    "Inherit": "Наследяване",
+    "ItemAddedWithName": "{0} е добавено към библиотеката",
+    "ItemRemovedWithName": "{0} е премахнато от библиотеката",
+    "LabelIpAddressValue": "ИП адрес: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Последни",
+    "MessageApplicationUpdated": "Сървърът е обновен",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Смесено съдържание",
+    "Movies": "Филми",
+    "Music": "Музика",
+    "MusicVideos": "Музикални клипове",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Сезон {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Налично е обновление на програмата",
+    "NotificationOptionApplicationUpdateInstalled": "Обновлението на програмата е инсталирано",
+    "NotificationOptionAudioPlayback": "Възпроизвеждането на звук започна",
+    "NotificationOptionAudioPlaybackStopped": "Възпроизвеждането на звук е спряно",
+    "NotificationOptionCameraImageUploaded": "Изображението от фотоапарата е качено",
+    "NotificationOptionGamePlayback": "Възпроизвеждането на играта започна",
+    "NotificationOptionGamePlaybackStopped": "Възпроизвеждането на играта е спряна",
+    "NotificationOptionInstallationFailed": "Неуспешно инсталиране",
+    "NotificationOptionNewLibraryContent": "Добавено е ново съдържание",
+    "NotificationOptionPluginError": "Грешка в приставка",
+    "NotificationOptionPluginInstalled": "Приставката е инсталирана",
+    "NotificationOptionPluginUninstalled": "Приставката е деинсталирана",
+    "NotificationOptionPluginUpdateInstalled": "Обновлението на приставката е инсталирано",
+    "NotificationOptionServerRestartRequired": "Нужно е повторно пускане на сървъра",
+    "NotificationOptionTaskFailed": "Грешка в планирана задача",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Възпроизвеждането на видео започна",
+    "NotificationOptionVideoPlaybackStopped": "Възпроизвеждането на видео е спряно",
+    "Photos": "Снимки",
+    "Playlists": "Списъци",
+    "Plugin": "Приставка",
+    "PluginInstalledWithName": "{0} е инсталирано",
+    "PluginUninstalledWithName": "{0} е деинсталирано",
+    "PluginUpdatedWithName": "{0} е обновено",
+    "ProviderValue": "Доставчик: {0}",
+    "ScheduledTaskFailedWithName": "{0} се провали",
+    "ScheduledTaskStartedWithName": "{0} започна",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Сериали",
+    "Songs": "Песни",
+    "StartupEmbyServerIsLoading": "Сървърът зарежда. Моля, опитайте отново след малко.",
+    "SubtitleDownloadFailureForItem": "Неуспешно изтегляне на субтитри за {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Изтеглени са субтитри за {0}",
+    "Sync": "Синхронизиране",
+    "System": "Система",
+    "TvShows": "Телевизионни сериали",
+    "User": "Потребител",
+    "UserCreatedWithName": "Потребителят {0} е създаден",
+    "UserDeletedWithName": "Потребителят {0} е изтрит",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} се разкачи от {1}",
+    "UserOnlineFromDevice": "{0} е на линия от {1}",
+    "UserPasswordChangedWithName": "Паролата на потребителя {0} е променена",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} пусна {1}",
+    "UserStoppedPlayingItemWithValues": "{0} спря {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Специални - {0}",
+    "VersionNumber": "Версия {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/ca.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Àlbums",
-  "AppDeviceValues": "App: {0}, Dispositiu: {1}",
-  "Application": "Application",
-  "Artists": "Artistes",
-  "AuthenticationSucceededWithUserName": "{0} s'ha autenticat correctament",
-  "Books": "Llibres",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Canals",
-  "ChapterNameValue": "Episodi {0}",
-  "Collections": "Col·leccions",
-  "DeviceOfflineWithName": "{0} s'ha desconnectat",
-  "DeviceOnlineWithName": "{0} està connectat",
-  "FailedLoginAttemptWithUserName": "Intent de connexió fallit des de {0}",
-  "Favorites": "Preferits",
-  "Folders": "Directoris",
-  "Games": "Jocs",
-  "Genres": "Gèneres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continua Veient",
-  "HeaderFavoriteAlbums": "Àlbums Preferits",
-  "HeaderFavoriteArtists": "Artistes Preferits",
-  "HeaderFavoriteEpisodes": "Episodis Preferits",
-  "HeaderFavoriteShows": "Programes Preferits",
-  "HeaderFavoriteSongs": "Cançons Preferides",
-  "HeaderLiveTV": "TV en Directe",
-  "HeaderNextUp": "A continuació",
-  "HeaderRecordingGroups": "Grups d'Enregistrament",
-  "HomeVideos": "Vídeos domèstics",
-  "Inherit": "Heretat",
-  "ItemAddedWithName": "{0} afegit a la biblioteca",
-  "ItemRemovedWithName": "{0} eliminat de la biblioteca",
-  "LabelIpAddressValue": "Adreça IP: {0}",
-  "LabelRunningTimeValue": "Temps en marxa: {0}",
-  "Latest": "Darreres",
-  "MessageApplicationUpdated": "El Servidor d'Jellyfin ha estat actualitzat",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "La secció de configuració {0} ha estat actualitzada",
-  "MessageServerConfigurationUpdated": "S'ha actualitzat la configuració del servidor",
-  "MixedContent": "Contingut mesclat",
-  "Movies": "Pel·lícules",
-  "Music": "Música",
-  "MusicVideos": "Vídeos musicals",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Temporada {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Actualització d'aplicació disponible",
-  "NotificationOptionApplicationUpdateInstalled": "Actualització d'aplicació instal·lada",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Un component ha fallat",
-  "NotificationOptionPluginInstalled": "Complement instal·lat",
-  "NotificationOptionPluginUninstalled": "Complement desinstal·lat",
-  "NotificationOptionPluginUpdateInstalled": "Actualització de complement instal·lada",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Fotos",
-  "Playlists": "Llistes de reproducció",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} ha estat instal·lat",
-  "PluginUninstalledWithName": "{0} ha estat desinstal·lat",
-  "PluginUpdatedWithName": "{0} ha estat actualitzat",
-  "ProviderValue": "Proveïdor: {0}",
-  "ScheduledTaskFailedWithName": "{0} ha fallat",
-  "ScheduledTaskStartedWithName": "{0} iniciat",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Espectacles",
-  "Songs": "Cançons",
-  "StartupEmbyServerIsLoading": "El Servidor d'Jellyfin est&agrave; carregant. Si et plau, prova de nou en breus.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtítols descarregats per a {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "Espectacles de TV",
-  "User": "User",
-  "UserCreatedWithName": "S'ha creat l'usuari {0}",
-  "UserDeletedWithName": "L'usuari {0} ha estat eliminat",
-  "UserDownloadingItemWithValues": "{0} està descarregant {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} s'ha desconnectat de {1}",
-  "UserOnlineFromDevice": "{0} està connectat des de {1}",
-  "UserPasswordChangedWithName": "La contrasenya ha estat canviada per a l'usuari {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} ha començat a reproduir {1}",
-  "UserStoppedPlayingItemWithValues": "{0} ha parat de reproduir {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Especial - {0}",
-  "VersionNumber": "Versió {0}"
+    "Albums": "Àlbums",
+    "AppDeviceValues": "App: {0}, Dispositiu: {1}",
+    "Application": "Application",
+    "Artists": "Artistes",
+    "AuthenticationSucceededWithUserName": "{0} s'ha autenticat correctament",
+    "Books": "Llibres",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Canals",
+    "ChapterNameValue": "Episodi {0}",
+    "Collections": "Col·leccions",
+    "DeviceOfflineWithName": "{0} s'ha desconnectat",
+    "DeviceOnlineWithName": "{0} està connectat",
+    "FailedLoginAttemptWithUserName": "Intent de connexió fallit des de {0}",
+    "Favorites": "Preferits",
+    "Folders": "Directoris",
+    "Games": "Jocs",
+    "Genres": "Gèneres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continua Veient",
+    "HeaderFavoriteAlbums": "Àlbums Preferits",
+    "HeaderFavoriteArtists": "Artistes Preferits",
+    "HeaderFavoriteEpisodes": "Episodis Preferits",
+    "HeaderFavoriteShows": "Programes Preferits",
+    "HeaderFavoriteSongs": "Cançons Preferides",
+    "HeaderLiveTV": "TV en Directe",
+    "HeaderNextUp": "A continuació",
+    "HeaderRecordingGroups": "Grups d'Enregistrament",
+    "HomeVideos": "Vídeos domèstics",
+    "Inherit": "Heretat",
+    "ItemAddedWithName": "{0} afegit a la biblioteca",
+    "ItemRemovedWithName": "{0} eliminat de la biblioteca",
+    "LabelIpAddressValue": "Adreça IP: {0}",
+    "LabelRunningTimeValue": "Temps en marxa: {0}",
+    "Latest": "Darreres",
+    "MessageApplicationUpdated": "El Servidor d'Jellyfin ha estat actualitzat",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "La secció de configuració {0} ha estat actualitzada",
+    "MessageServerConfigurationUpdated": "S'ha actualitzat la configuració del servidor",
+    "MixedContent": "Contingut mesclat",
+    "Movies": "Pel·lícules",
+    "Music": "Música",
+    "MusicVideos": "Vídeos musicals",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Temporada {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Actualització d'aplicació disponible",
+    "NotificationOptionApplicationUpdateInstalled": "Actualització d'aplicació instal·lada",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Un component ha fallat",
+    "NotificationOptionPluginInstalled": "Complement instal·lat",
+    "NotificationOptionPluginUninstalled": "Complement desinstal·lat",
+    "NotificationOptionPluginUpdateInstalled": "Actualització de complement instal·lada",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Fotos",
+    "Playlists": "Llistes de reproducció",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} ha estat instal·lat",
+    "PluginUninstalledWithName": "{0} ha estat desinstal·lat",
+    "PluginUpdatedWithName": "{0} ha estat actualitzat",
+    "ProviderValue": "Proveïdor: {0}",
+    "ScheduledTaskFailedWithName": "{0} ha fallat",
+    "ScheduledTaskStartedWithName": "{0} iniciat",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Espectacles",
+    "Songs": "Cançons",
+    "StartupEmbyServerIsLoading": "El Servidor d'Jellyfin est&agrave; carregant. Si et plau, prova de nou en breus.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtítols descarregats per a {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "Espectacles de TV",
+    "User": "User",
+    "UserCreatedWithName": "S'ha creat l'usuari {0}",
+    "UserDeletedWithName": "L'usuari {0} ha estat eliminat",
+    "UserDownloadingItemWithValues": "{0} està descarregant {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} s'ha desconnectat de {1}",
+    "UserOnlineFromDevice": "{0} està connectat des de {1}",
+    "UserPasswordChangedWithName": "La contrasenya ha estat canviada per a l'usuari {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} ha començat a reproduir {1}",
+    "UserStoppedPlayingItemWithValues": "{0} ha parat de reproduir {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Especial - {0}",
+    "VersionNumber": "Versió {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/cs.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Alba",
-  "AppDeviceValues": "Aplikace: {0}, Zařízení: {1}",
-  "Application": "Aplikace",
-  "Artists": "Umělci",
-  "AuthenticationSucceededWithUserName": "{0} úspěšně ověřen",
-  "Books": "Knihy",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanály",
-  "ChapterNameValue": "Kapitola {0}",
-  "Collections": "Kolekce",
-  "DeviceOfflineWithName": "{0} se odpojil",
-  "DeviceOnlineWithName": "{0} je připojen",
-  "FailedLoginAttemptWithUserName": "Neúspěšný pokus o přihlášení z {0}",
-  "Favorites": "Oblíbené",
-  "Folders": "Složky",
-  "Games": "Hry",
-  "Genres": "Žánry",
-  "HeaderAlbumArtists": "Umělci alba",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Pokračovat ve sledování",
-  "HeaderFavoriteAlbums": "Oblíbená alba",
-  "HeaderFavoriteArtists": "Oblíbení umělci",
-  "HeaderFavoriteEpisodes": "Oblíbené epizody",
-  "HeaderFavoriteShows": "Oblíbené seriály",
-  "HeaderFavoriteSongs": "Oblíbené písně",
-  "HeaderLiveTV": "Živá TV",
-  "HeaderNextUp": "Nadcházející",
-  "HeaderRecordingGroups": "Skupiny nahrávek",
-  "HomeVideos": "Domáci videa",
-  "Inherit": "Zdědit",
-  "ItemAddedWithName": "{0} byl přidán do knihovny",
-  "ItemRemovedWithName": "{0} byl odstraněn z knihovny",
-  "LabelIpAddressValue": "IP adresa: {0}",
-  "LabelRunningTimeValue": "Délka média: {0}",
-  "Latest": "Nejnovější",
-  "MessageApplicationUpdated": "Jellyfin Server byl aktualizován",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Konfigurace sekce {0} na serveru byla aktualizována",
-  "MessageServerConfigurationUpdated": "Konfigurace serveru aktualizována",
-  "MixedContent": "Smíšený obsah",
-  "Movies": "Filmy",
-  "Music": "Hudba",
-  "MusicVideos": "Hudební klipy",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Sezóna {0}",
-  "NameSeasonUnknown": "Neznámá sezóna",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Dostupná aktualizace aplikace",
-  "NotificationOptionApplicationUpdateInstalled": "Aktualizace aplikace instalována",
-  "NotificationOptionAudioPlayback": "Přehrávání audia zahájeno",
-  "NotificationOptionAudioPlaybackStopped": "Přehrávání audia ukončeno",
-  "NotificationOptionCameraImageUploaded": "Kamerový záznam nahrán",
-  "NotificationOptionGamePlayback": "Spuštění hry zahájeno",
-  "NotificationOptionGamePlaybackStopped": "Hra ukončena",
-  "NotificationOptionInstallationFailed": "Chyba instalace",
-  "NotificationOptionNewLibraryContent": "Přidán nový obsah",
-  "NotificationOptionPluginError": "Chyba zásuvného modulu",
-  "NotificationOptionPluginInstalled": "Zásuvný modul instalován",
-  "NotificationOptionPluginUninstalled": "Zásuvný modul odstraněn",
-  "NotificationOptionPluginUpdateInstalled": "Aktualizace zásuvného modulu instalována",
-  "NotificationOptionServerRestartRequired": "Je vyžadován restart serveru",
-  "NotificationOptionTaskFailed": "Chyba naplánované úlohy",
-  "NotificationOptionUserLockedOut": "Uživatel uzamčen",
-  "NotificationOptionVideoPlayback": "Přehrávání videa zahájeno",
-  "NotificationOptionVideoPlaybackStopped": "Přehrávání videa ukončeno",
-  "Photos": "Fotky",
-  "Playlists": "Seznamy skladeb",
-  "Plugin": "Zásuvný modul",
-  "PluginInstalledWithName": "{0} byl nainstalován",
-  "PluginUninstalledWithName": "{0} byl odinstalován",
-  "PluginUpdatedWithName": "{0} byl aktualizován",
-  "ProviderValue": "Poskytl: {0}",
-  "ScheduledTaskFailedWithName": "{0} selhalo",
-  "ScheduledTaskStartedWithName": "{0} zahájeno",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Seriály",
-  "Songs": "Skladby",
-  "StartupEmbyServerIsLoading": "Jellyfin Server je spouštěn. Zkuste to prosím v brzké době znovu.",
-  "SubtitleDownloadFailureForItem": "Stahování titulků selhalo pro {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Staženy titulky pro {0}",
-  "Sync": "Synchronizace",
-  "System": "Systém",
-  "TvShows": "TV seriály",
-  "User": "Uživatel",
-  "UserCreatedWithName": "Uživatel {0} byl vytvořen",
-  "UserDeletedWithName": "Uživatel {0} byl smazán",
-  "UserDownloadingItemWithValues": "{0} stahuje {1}",
-  "UserLockedOutWithName": "Uživatel {0} byl odemčen",
-  "UserOfflineFromDevice": "{0} se odpojil od {1}",
-  "UserOnlineFromDevice": "{0} se připojil z {1}",
-  "UserPasswordChangedWithName": "Provedena změna hesla pro uživatele {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} spustil přehrávání {1}",
-  "UserStoppedPlayingItemWithValues": "{0} zastavil přehrávání {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Speciál - {0}",
-  "VersionNumber": "Verze {0}"
+    "Albums": "Alba",
+    "AppDeviceValues": "Aplikace: {0}, Zařízení: {1}",
+    "Application": "Aplikace",
+    "Artists": "Umělci",
+    "AuthenticationSucceededWithUserName": "{0} úspěšně ověřen",
+    "Books": "Knihy",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanály",
+    "ChapterNameValue": "Kapitola {0}",
+    "Collections": "Kolekce",
+    "DeviceOfflineWithName": "{0} se odpojil",
+    "DeviceOnlineWithName": "{0} je připojen",
+    "FailedLoginAttemptWithUserName": "Neúspěšný pokus o přihlášení z {0}",
+    "Favorites": "Oblíbené",
+    "Folders": "Složky",
+    "Games": "Hry",
+    "Genres": "Žánry",
+    "HeaderAlbumArtists": "Umělci alba",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Pokračovat ve sledování",
+    "HeaderFavoriteAlbums": "Oblíbená alba",
+    "HeaderFavoriteArtists": "Oblíbení umělci",
+    "HeaderFavoriteEpisodes": "Oblíbené epizody",
+    "HeaderFavoriteShows": "Oblíbené seriály",
+    "HeaderFavoriteSongs": "Oblíbené písně",
+    "HeaderLiveTV": "Živá TV",
+    "HeaderNextUp": "Nadcházející",
+    "HeaderRecordingGroups": "Skupiny nahrávek",
+    "HomeVideos": "Domáci videa",
+    "Inherit": "Zdědit",
+    "ItemAddedWithName": "{0} byl přidán do knihovny",
+    "ItemRemovedWithName": "{0} byl odstraněn z knihovny",
+    "LabelIpAddressValue": "IP adresa: {0}",
+    "LabelRunningTimeValue": "Délka média: {0}",
+    "Latest": "Nejnovější",
+    "MessageApplicationUpdated": "Jellyfin Server byl aktualizován",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Konfigurace sekce {0} na serveru byla aktualizována",
+    "MessageServerConfigurationUpdated": "Konfigurace serveru aktualizována",
+    "MixedContent": "Smíšený obsah",
+    "Movies": "Filmy",
+    "Music": "Hudba",
+    "MusicVideos": "Hudební klipy",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Sezóna {0}",
+    "NameSeasonUnknown": "Neznámá sezóna",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Dostupná aktualizace aplikace",
+    "NotificationOptionApplicationUpdateInstalled": "Aktualizace aplikace instalována",
+    "NotificationOptionAudioPlayback": "Přehrávání audia zahájeno",
+    "NotificationOptionAudioPlaybackStopped": "Přehrávání audia ukončeno",
+    "NotificationOptionCameraImageUploaded": "Kamerový záznam nahrán",
+    "NotificationOptionGamePlayback": "Spuštění hry zahájeno",
+    "NotificationOptionGamePlaybackStopped": "Hra ukončena",
+    "NotificationOptionInstallationFailed": "Chyba instalace",
+    "NotificationOptionNewLibraryContent": "Přidán nový obsah",
+    "NotificationOptionPluginError": "Chyba zásuvného modulu",
+    "NotificationOptionPluginInstalled": "Zásuvný modul instalován",
+    "NotificationOptionPluginUninstalled": "Zásuvný modul odstraněn",
+    "NotificationOptionPluginUpdateInstalled": "Aktualizace zásuvného modulu instalována",
+    "NotificationOptionServerRestartRequired": "Je vyžadován restart serveru",
+    "NotificationOptionTaskFailed": "Chyba naplánované úlohy",
+    "NotificationOptionUserLockedOut": "Uživatel uzamčen",
+    "NotificationOptionVideoPlayback": "Přehrávání videa zahájeno",
+    "NotificationOptionVideoPlaybackStopped": "Přehrávání videa ukončeno",
+    "Photos": "Fotky",
+    "Playlists": "Seznamy skladeb",
+    "Plugin": "Zásuvný modul",
+    "PluginInstalledWithName": "{0} byl nainstalován",
+    "PluginUninstalledWithName": "{0} byl odinstalován",
+    "PluginUpdatedWithName": "{0} byl aktualizován",
+    "ProviderValue": "Poskytl: {0}",
+    "ScheduledTaskFailedWithName": "{0} selhalo",
+    "ScheduledTaskStartedWithName": "{0} zahájeno",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Seriály",
+    "Songs": "Skladby",
+    "StartupEmbyServerIsLoading": "Jellyfin Server je spouštěn. Zkuste to prosím v brzké době znovu.",
+    "SubtitleDownloadFailureForItem": "Stahování titulků selhalo pro {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Staženy titulky pro {0}",
+    "Sync": "Synchronizace",
+    "System": "Systém",
+    "TvShows": "TV seriály",
+    "User": "Uživatel",
+    "UserCreatedWithName": "Uživatel {0} byl vytvořen",
+    "UserDeletedWithName": "Uživatel {0} byl smazán",
+    "UserDownloadingItemWithValues": "{0} stahuje {1}",
+    "UserLockedOutWithName": "Uživatel {0} byl odemčen",
+    "UserOfflineFromDevice": "{0} se odpojil od {1}",
+    "UserOnlineFromDevice": "{0} se připojil z {1}",
+    "UserPasswordChangedWithName": "Provedena změna hesla pro uživatele {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} spustil přehrávání {1}",
+    "UserStoppedPlayingItemWithValues": "{0} zastavil přehrávání {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Speciál - {0}",
+    "VersionNumber": "Verze {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/da.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Album",
-  "AppDeviceValues": "App: {0}, Enhed: {1}",
-  "Application": "Applikation",
-  "Artists": "Kunstner",
-  "AuthenticationSucceededWithUserName": "{0} bekræftet med succes",
-  "Books": "Bøger",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanaler",
-  "ChapterNameValue": "Kapitel {0}",
-  "Collections": "Samlinger",
-  "DeviceOfflineWithName": "{0} har afbrudt forbindelsen",
-  "DeviceOnlineWithName": "{0} er forbundet",
-  "FailedLoginAttemptWithUserName": "Fejlet loginforsøg fra {0}",
-  "Favorites": "Favoritter",
-  "Folders": "Mapper",
-  "Games": "Spil",
-  "Genres": "Genre",
-  "HeaderAlbumArtists": "Albumkunstnere",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Fortsæt Afspilning",
-  "HeaderFavoriteAlbums": "Favoritalbum",
-  "HeaderFavoriteArtists": "Favoritkunstnere",
-  "HeaderFavoriteEpisodes": "Favoritepisoder",
-  "HeaderFavoriteShows": "Favorit serier",
-  "HeaderFavoriteSongs": "Favoritsange",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Næste",
-  "HeaderRecordingGroups": "Optagegrupper",
-  "HomeVideos": "Hjemmevideoer",
-  "Inherit": "Arv",
-  "ItemAddedWithName": "{0} blev tilføjet til biblioteket",
-  "ItemRemovedWithName": "{0} blev fjernet fra biblioteket",
-  "LabelIpAddressValue": "IP-adresse: {0}",
-  "LabelRunningTimeValue": "Spilletid: {0}",
-  "Latest": "Seneste",
-  "MessageApplicationUpdated": "Jellyfin Server er blevet opdateret",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server konfigurationssektion {0} er blevet opdateret",
-  "MessageServerConfigurationUpdated": "Serverkonfiguration er blevet opdateret",
-  "MixedContent": "Blandet indhold",
-  "Movies": "Film",
-  "Music": "Musik",
-  "MusicVideos": "Musikvideoer",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Sæson {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Opdatering til applikation tilgængelig",
-  "NotificationOptionApplicationUpdateInstalled": "Opdatering til applikation installeret",
-  "NotificationOptionAudioPlayback": "Audioafspilning påbegyndt",
-  "NotificationOptionAudioPlaybackStopped": "Audioafspilning stoppet",
-  "NotificationOptionCameraImageUploaded": "Kamerabillede uploadet",
-  "NotificationOptionGamePlayback": "Afspilning af Spil påbegyndt",
-  "NotificationOptionGamePlaybackStopped": "Afspilning af Spil stoppet",
-  "NotificationOptionInstallationFailed": "Installationsfejl",
-  "NotificationOptionNewLibraryContent": "Nyt indhold tilføjet",
-  "NotificationOptionPluginError": "Pluginfejl",
-  "NotificationOptionPluginInstalled": "Plugin installeret",
-  "NotificationOptionPluginUninstalled": "Plugin afinstalleret",
-  "NotificationOptionPluginUpdateInstalled": "Opdatering til plugin installeret",
-  "NotificationOptionServerRestartRequired": "Genstart af server påkrævet",
-  "NotificationOptionTaskFailed": "Planlagt opgave fejlet",
-  "NotificationOptionUserLockedOut": "Bruger låst ude",
-  "NotificationOptionVideoPlayback": "Videoafspilning påbegyndt",
-  "NotificationOptionVideoPlaybackStopped": "Videoafspilning stoppet",
-  "Photos": "Fotos",
-  "Playlists": "Spillelister",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} blev installeret",
-  "PluginUninstalledWithName": "{0} blev afinstalleret",
-  "PluginUpdatedWithName": "{0} blev opdateret",
-  "ProviderValue": "Udbyder: {0}",
-  "ScheduledTaskFailedWithName": "{0} fejlet",
-  "ScheduledTaskStartedWithName": "{0} påbegyndt",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Sange",
-  "StartupEmbyServerIsLoading": "Jellyfin Server indlæser. Prøv venligst igen om kort tid.",
-  "SubtitleDownloadFailureForItem": "Fejlet i download af undertekster for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Undertekster downloadet for {0}",
-  "Sync": "Synk",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "Bruger",
-  "UserCreatedWithName": "Bruger {0} er blevet oprettet",
-  "UserDeletedWithName": "Brugeren {0} er blevet slettet",
-  "UserDownloadingItemWithValues": "{0} downloader {1}",
-  "UserLockedOutWithName": "Brugeren {0} er blevet låst ude",
-  "UserOfflineFromDevice": "{0} har afbrudt fra {1}",
-  "UserOnlineFromDevice": "{0} er online fra {1}",
-  "UserPasswordChangedWithName": "Adgangskode er ændret for bruger {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} har påbegyndt afspilning af {1}",
-  "UserStoppedPlayingItemWithValues": "{0} har afsluttet afspilning af {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Album",
+    "AppDeviceValues": "App: {0}, Enhed: {1}",
+    "Application": "Applikation",
+    "Artists": "Kunstner",
+    "AuthenticationSucceededWithUserName": "{0} bekræftet med succes",
+    "Books": "Bøger",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanaler",
+    "ChapterNameValue": "Kapitel {0}",
+    "Collections": "Samlinger",
+    "DeviceOfflineWithName": "{0} har afbrudt forbindelsen",
+    "DeviceOnlineWithName": "{0} er forbundet",
+    "FailedLoginAttemptWithUserName": "Fejlet loginforsøg fra {0}",
+    "Favorites": "Favoritter",
+    "Folders": "Mapper",
+    "Games": "Spil",
+    "Genres": "Genre",
+    "HeaderAlbumArtists": "Albumkunstnere",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Fortsæt Afspilning",
+    "HeaderFavoriteAlbums": "Favoritalbum",
+    "HeaderFavoriteArtists": "Favoritkunstnere",
+    "HeaderFavoriteEpisodes": "Favoritepisoder",
+    "HeaderFavoriteShows": "Favorit serier",
+    "HeaderFavoriteSongs": "Favoritsange",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Næste",
+    "HeaderRecordingGroups": "Optagegrupper",
+    "HomeVideos": "Hjemmevideoer",
+    "Inherit": "Arv",
+    "ItemAddedWithName": "{0} blev tilføjet til biblioteket",
+    "ItemRemovedWithName": "{0} blev fjernet fra biblioteket",
+    "LabelIpAddressValue": "IP-adresse: {0}",
+    "LabelRunningTimeValue": "Spilletid: {0}",
+    "Latest": "Seneste",
+    "MessageApplicationUpdated": "Jellyfin Server er blevet opdateret",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server konfigurationssektion {0} er blevet opdateret",
+    "MessageServerConfigurationUpdated": "Serverkonfiguration er blevet opdateret",
+    "MixedContent": "Blandet indhold",
+    "Movies": "Film",
+    "Music": "Musik",
+    "MusicVideos": "Musikvideoer",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Sæson {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Opdatering til applikation tilgængelig",
+    "NotificationOptionApplicationUpdateInstalled": "Opdatering til applikation installeret",
+    "NotificationOptionAudioPlayback": "Audioafspilning påbegyndt",
+    "NotificationOptionAudioPlaybackStopped": "Audioafspilning stoppet",
+    "NotificationOptionCameraImageUploaded": "Kamerabillede uploadet",
+    "NotificationOptionGamePlayback": "Afspilning af Spil påbegyndt",
+    "NotificationOptionGamePlaybackStopped": "Afspilning af Spil stoppet",
+    "NotificationOptionInstallationFailed": "Installationsfejl",
+    "NotificationOptionNewLibraryContent": "Nyt indhold tilføjet",
+    "NotificationOptionPluginError": "Pluginfejl",
+    "NotificationOptionPluginInstalled": "Plugin installeret",
+    "NotificationOptionPluginUninstalled": "Plugin afinstalleret",
+    "NotificationOptionPluginUpdateInstalled": "Opdatering til plugin installeret",
+    "NotificationOptionServerRestartRequired": "Genstart af server påkrævet",
+    "NotificationOptionTaskFailed": "Planlagt opgave fejlet",
+    "NotificationOptionUserLockedOut": "Bruger låst ude",
+    "NotificationOptionVideoPlayback": "Videoafspilning påbegyndt",
+    "NotificationOptionVideoPlaybackStopped": "Videoafspilning stoppet",
+    "Photos": "Fotos",
+    "Playlists": "Spillelister",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} blev installeret",
+    "PluginUninstalledWithName": "{0} blev afinstalleret",
+    "PluginUpdatedWithName": "{0} blev opdateret",
+    "ProviderValue": "Udbyder: {0}",
+    "ScheduledTaskFailedWithName": "{0} fejlet",
+    "ScheduledTaskStartedWithName": "{0} påbegyndt",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Sange",
+    "StartupEmbyServerIsLoading": "Jellyfin Server indlæser. Prøv venligst igen om kort tid.",
+    "SubtitleDownloadFailureForItem": "Fejlet i download af undertekster for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Undertekster downloadet for {0}",
+    "Sync": "Synk",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "Bruger",
+    "UserCreatedWithName": "Bruger {0} er blevet oprettet",
+    "UserDeletedWithName": "Brugeren {0} er blevet slettet",
+    "UserDownloadingItemWithValues": "{0} downloader {1}",
+    "UserLockedOutWithName": "Brugeren {0} er blevet låst ude",
+    "UserOfflineFromDevice": "{0} har afbrudt fra {1}",
+    "UserOnlineFromDevice": "{0} er online fra {1}",
+    "UserPasswordChangedWithName": "Adgangskode er ændret for bruger {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} har påbegyndt afspilning af {1}",
+    "UserStoppedPlayingItemWithValues": "{0} har afsluttet afspilning af {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/de.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Alben",
-  "AppDeviceValues": "App: {0}, Gerät: {1}",
-  "Application": "Anwendung",
-  "Artists": "Interpreten",
-  "AuthenticationSucceededWithUserName": "{0} erfolgreich authentifiziert",
-  "Books": "Bücher",
-  "CameraImageUploadedFrom": "Ein neues Bild wurde hochgeladen von {0}",
-  "Channels": "Kanäle",
-  "ChapterNameValue": "Kapitel {0}",
-  "Collections": "Sammlungen",
-  "DeviceOfflineWithName": "{0} wurde getrennt",
-  "DeviceOnlineWithName": "{0} ist verbunden",
-  "FailedLoginAttemptWithUserName": "Fehlgeschlagener Anmeldeversuch von {0}",
-  "Favorites": "Favoriten",
-  "Folders": "Verzeichnisse",
-  "Games": "Spiele",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album-Künstler",
-  "HeaderCameraUploads": "Kamera Uploads",
-  "HeaderContinueWatching": "Weiterschauen",
-  "HeaderFavoriteAlbums": "Lieblingsalben",
-  "HeaderFavoriteArtists": "Interpreten Favoriten",
-  "HeaderFavoriteEpisodes": "Lieblingsepisoden",
-  "HeaderFavoriteShows": "Lieblingsserien",
-  "HeaderFavoriteSongs": "Lieder Favoriten",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Als Nächstes",
-  "HeaderRecordingGroups": "Aufnahme-Gruppen",
-  "HomeVideos": "Heimvideos",
-  "Inherit": "Übernehmen",
-  "ItemAddedWithName": "{0} wurde der Bibliothek hinzugefügt",
-  "ItemRemovedWithName": "{0} wurde aus der Bibliothek entfernt",
-  "LabelIpAddressValue": "IP Adresse: {0}",
-  "LabelRunningTimeValue": "Laufzeit: {0}",
-  "Latest": "Neueste",
-  "MessageApplicationUpdated": "Jellyfin Server wurde auf den neusten Stand gebracht.",
-  "MessageApplicationUpdatedTo": "Jellyfin Server wurde auf Version {0} aktualisiert",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Der Server Einstellungsbereich {0} wurde aktualisiert",
-  "MessageServerConfigurationUpdated": "Server Einstellungen wurden aktualisiert",
-  "MixedContent": "Gemischte Inhalte",
-  "Movies": "Filme",
-  "Music": "Musik",
-  "MusicVideos": "Musikvideos",
-  "NameInstallFailed": "{0} Installation fehlgeschlagen",
-  "NameSeasonNumber": "Staffel {0}",
-  "NameSeasonUnknown": "Staffel unbekannt",
-  "NewVersionIsAvailable": "Eine neue Version von Jellyfin Server steht zum Download bereit.",
-  "NotificationOptionApplicationUpdateAvailable": "Anwendungsaktualisierung verfügbar",
-  "NotificationOptionApplicationUpdateInstalled": "Anwendungsaktualisierung installiert",
-  "NotificationOptionAudioPlayback": "Audiowiedergabe gestartet",
-  "NotificationOptionAudioPlaybackStopped": "Audiowiedergabe gestoppt",
-  "NotificationOptionCameraImageUploaded": "Kamera Bild hochgeladen",
-  "NotificationOptionGamePlayback": "Spielwiedergabe gestartet",
-  "NotificationOptionGamePlaybackStopped": "Spielwiedergabe gestoppt",
-  "NotificationOptionInstallationFailed": "Installationsfehler",
-  "NotificationOptionNewLibraryContent": "Neuer Inhalt hinzugefügt",
-  "NotificationOptionPluginError": "Plugin Fehler",
-  "NotificationOptionPluginInstalled": "Plugin installiert",
-  "NotificationOptionPluginUninstalled": "Plugin deinstalliert",
-  "NotificationOptionPluginUpdateInstalled": "Pluginaktualisierung installiert",
-  "NotificationOptionServerRestartRequired": "Serverneustart notwendig",
-  "NotificationOptionTaskFailed": "Geplante Aufgaben fehlgeschlagen",
-  "NotificationOptionUserLockedOut": "Benutzer ausgeschlossen",
-  "NotificationOptionVideoPlayback": "Videowiedergabe gestartet",
-  "NotificationOptionVideoPlaybackStopped": "Videowiedergabe gestoppt",
-  "Photos": "Fotos",
-  "Playlists": "Wiedergabelisten",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} wurde installiert",
-  "PluginUninstalledWithName": "{0} wurde deinstalliert",
-  "PluginUpdatedWithName": "{0} wurde aktualisiert",
-  "ProviderValue": "Anbieter: {0}",
-  "ScheduledTaskFailedWithName": "{0} fehlgeschlagen",
-  "ScheduledTaskStartedWithName": "{0} gestartet",
-  "ServerNameNeedsToBeRestarted": "{0} muss neu gestartet werden",
-  "Shows": "Serien",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server startet, bitte versuche es gleich noch einmal.",
-  "SubtitleDownloadFailureForItem": "Download der Untertitel fehlgeschlagen für {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Untertitel heruntergeladen für {0}",
-  "Sync": "Synchronisation",
-  "System": "System",
-  "TvShows": "TV Sendungen",
-  "User": "Benutzer",
-  "UserCreatedWithName": "Benutzer {0} wurde erstellt",
-  "UserDeletedWithName": "Benutzer {0} wurde gelöscht",
-  "UserDownloadingItemWithValues": "{0} lädt {1} herunter",
-  "UserLockedOutWithName": "Benutzer {0} wurde ausgeschlossen",
-  "UserOfflineFromDevice": "{0} wurde getrennt von {1}",
-  "UserOnlineFromDevice": "{0} ist online von {1}",
-  "UserPasswordChangedWithName": "Das Passwort für Benutzer {0} wurde geändert",
-  "UserPolicyUpdatedWithName": "Benutzerrichtlinie wurde für {0} aktualisiert",
-  "UserStartedPlayingItemWithValues": "{0} hat die Wiedergabe von {1} gestartet",
-  "UserStoppedPlayingItemWithValues": "{0} hat die Wiedergabe von {1} beendet",
-  "ValueHasBeenAddedToLibrary": "{0} wurde ihrer Bibliothek hinzugefügt",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Alben",
+    "AppDeviceValues": "App: {0}, Gerät: {1}",
+    "Application": "Anwendung",
+    "Artists": "Interpreten",
+    "AuthenticationSucceededWithUserName": "{0} erfolgreich authentifiziert",
+    "Books": "Bücher",
+    "CameraImageUploadedFrom": "Ein neues Bild wurde hochgeladen von {0}",
+    "Channels": "Kanäle",
+    "ChapterNameValue": "Kapitel {0}",
+    "Collections": "Sammlungen",
+    "DeviceOfflineWithName": "{0} wurde getrennt",
+    "DeviceOnlineWithName": "{0} ist verbunden",
+    "FailedLoginAttemptWithUserName": "Fehlgeschlagener Anmeldeversuch von {0}",
+    "Favorites": "Favoriten",
+    "Folders": "Verzeichnisse",
+    "Games": "Spiele",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album-Künstler",
+    "HeaderCameraUploads": "Kamera Uploads",
+    "HeaderContinueWatching": "Weiterschauen",
+    "HeaderFavoriteAlbums": "Lieblingsalben",
+    "HeaderFavoriteArtists": "Interpreten Favoriten",
+    "HeaderFavoriteEpisodes": "Lieblingsepisoden",
+    "HeaderFavoriteShows": "Lieblingsserien",
+    "HeaderFavoriteSongs": "Lieder Favoriten",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Als Nächstes",
+    "HeaderRecordingGroups": "Aufnahme-Gruppen",
+    "HomeVideos": "Heimvideos",
+    "Inherit": "Übernehmen",
+    "ItemAddedWithName": "{0} wurde der Bibliothek hinzugefügt",
+    "ItemRemovedWithName": "{0} wurde aus der Bibliothek entfernt",
+    "LabelIpAddressValue": "IP Adresse: {0}",
+    "LabelRunningTimeValue": "Laufzeit: {0}",
+    "Latest": "Neueste",
+    "MessageApplicationUpdated": "Jellyfin Server wurde auf den neusten Stand gebracht.",
+    "MessageApplicationUpdatedTo": "Jellyfin Server wurde auf Version {0} aktualisiert",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Der Server Einstellungsbereich {0} wurde aktualisiert",
+    "MessageServerConfigurationUpdated": "Server Einstellungen wurden aktualisiert",
+    "MixedContent": "Gemischte Inhalte",
+    "Movies": "Filme",
+    "Music": "Musik",
+    "MusicVideos": "Musikvideos",
+    "NameInstallFailed": "{0} Installation fehlgeschlagen",
+    "NameSeasonNumber": "Staffel {0}",
+    "NameSeasonUnknown": "Staffel unbekannt",
+    "NewVersionIsAvailable": "Eine neue Version von Jellyfin Server steht zum Download bereit.",
+    "NotificationOptionApplicationUpdateAvailable": "Anwendungsaktualisierung verfügbar",
+    "NotificationOptionApplicationUpdateInstalled": "Anwendungsaktualisierung installiert",
+    "NotificationOptionAudioPlayback": "Audiowiedergabe gestartet",
+    "NotificationOptionAudioPlaybackStopped": "Audiowiedergabe gestoppt",
+    "NotificationOptionCameraImageUploaded": "Kamera Bild hochgeladen",
+    "NotificationOptionGamePlayback": "Spielwiedergabe gestartet",
+    "NotificationOptionGamePlaybackStopped": "Spielwiedergabe gestoppt",
+    "NotificationOptionInstallationFailed": "Installationsfehler",
+    "NotificationOptionNewLibraryContent": "Neuer Inhalt hinzugefügt",
+    "NotificationOptionPluginError": "Plugin Fehler",
+    "NotificationOptionPluginInstalled": "Plugin installiert",
+    "NotificationOptionPluginUninstalled": "Plugin deinstalliert",
+    "NotificationOptionPluginUpdateInstalled": "Pluginaktualisierung installiert",
+    "NotificationOptionServerRestartRequired": "Serverneustart notwendig",
+    "NotificationOptionTaskFailed": "Geplante Aufgaben fehlgeschlagen",
+    "NotificationOptionUserLockedOut": "Benutzer ausgeschlossen",
+    "NotificationOptionVideoPlayback": "Videowiedergabe gestartet",
+    "NotificationOptionVideoPlaybackStopped": "Videowiedergabe gestoppt",
+    "Photos": "Fotos",
+    "Playlists": "Wiedergabelisten",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} wurde installiert",
+    "PluginUninstalledWithName": "{0} wurde deinstalliert",
+    "PluginUpdatedWithName": "{0} wurde aktualisiert",
+    "ProviderValue": "Anbieter: {0}",
+    "ScheduledTaskFailedWithName": "{0} fehlgeschlagen",
+    "ScheduledTaskStartedWithName": "{0} gestartet",
+    "ServerNameNeedsToBeRestarted": "{0} muss neu gestartet werden",
+    "Shows": "Serien",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server startet, bitte versuche es gleich noch einmal.",
+    "SubtitleDownloadFailureForItem": "Download der Untertitel fehlgeschlagen für {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Untertitel heruntergeladen für {0}",
+    "Sync": "Synchronisation",
+    "System": "System",
+    "TvShows": "TV Sendungen",
+    "User": "Benutzer",
+    "UserCreatedWithName": "Benutzer {0} wurde erstellt",
+    "UserDeletedWithName": "Benutzer {0} wurde gelöscht",
+    "UserDownloadingItemWithValues": "{0} lädt {1} herunter",
+    "UserLockedOutWithName": "Benutzer {0} wurde ausgeschlossen",
+    "UserOfflineFromDevice": "{0} wurde getrennt von {1}",
+    "UserOnlineFromDevice": "{0} ist online von {1}",
+    "UserPasswordChangedWithName": "Das Passwort für Benutzer {0} wurde geändert",
+    "UserPolicyUpdatedWithName": "Benutzerrichtlinie wurde für {0} aktualisiert",
+    "UserStartedPlayingItemWithValues": "{0} hat die Wiedergabe von {1} gestartet",
+    "UserStoppedPlayingItemWithValues": "{0} hat die Wiedergabe von {1} beendet",
+    "ValueHasBeenAddedToLibrary": "{0} wurde ihrer Bibliothek hinzugefügt",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/el.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Άλμπουμ",
-  "AppDeviceValues": "Εφαρμογή: {0}, Συσκευή: {1}",
-  "Application": "Εφαρμογή",
-  "Artists": "Καλλιτέχνες",
-  "AuthenticationSucceededWithUserName": "{0} επιτυχείς σύνδεση",
-  "Books": "Βιβλία",
-  "CameraImageUploadedFrom": "Μια νέα εικόνα κάμερας έχει αποσταλεί από {0}",
-  "Channels": "Κανάλια",
-  "ChapterNameValue": "Κεφάλαιο {0}",
-  "Collections": "Συλλογές",
-  "DeviceOfflineWithName": "{0} αποσυνδέθηκε",
-  "DeviceOnlineWithName": "{0} συνδέθηκε",
-  "FailedLoginAttemptWithUserName": "Αποτυχημένη προσπάθεια σύνδεσης από {0}",
-  "Favorites": "Αγαπημένα",
-  "Folders": "Φάκελοι",
-  "Games": "Παιχνίδια",
-  "Genres": "Είδη",
-  "HeaderAlbumArtists": "Άλμπουμ Καλλιτεχνών",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Συνεχίστε να παρακολουθείτε",
-  "HeaderFavoriteAlbums": "Αγαπημένα Άλμπουμ",
-  "HeaderFavoriteArtists": "Αγαπημένοι Καλλιτέχνες",
-  "HeaderFavoriteEpisodes": "Αγαπημένα Επεισόδια",
-  "HeaderFavoriteShows": "Αγαπημένες Σειρές",
-  "HeaderFavoriteSongs": "Αγαπημένα Τραγούδια",
-  "HeaderLiveTV": "Ζωντανή Τηλεόραση",
-  "HeaderNextUp": "Επόμενο",
-  "HeaderRecordingGroups": "Γκρουπ Εγγραφών",
-  "HomeVideos": "Προσωπικά βίντεο",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} προστέθηκε στη βιβλιοθήκη",
-  "ItemRemovedWithName": "{0} διαγράφηκε από τη βιβλιοθήκη",
-  "LabelIpAddressValue": "Διεύθυνση IP: {0}",
-  "LabelRunningTimeValue": "Διάρκεια: {0}",
-  "Latest": "Πρόσφατα",
-  "MessageApplicationUpdated": "Ο Jellyfin Server έχει ενημερωθεί",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Η ενότητα {0} ρύθμισης παραμέτρων του server έχει ενημερωθεί",
-  "MessageServerConfigurationUpdated": "Η ρύθμιση παραμέτρων του server έχει ενημερωθεί",
-  "MixedContent": "Ανάμεικτο Περιεχόμενο",
-  "Movies": "Ταινίες",
-  "Music": "Μουσική",
-  "MusicVideos": "Μουσικά βίντεο",
-  "NameInstallFailed": "{0} η εγκατάσταση απέτυχε",
-  "NameSeasonNumber": "Κύκλος {0}",
-  "NameSeasonUnknown": "Άγνωστος Κύκλος",
-  "NewVersionIsAvailable": "Μια νέα έκδοση του Jellyfin Server είναι διαθέσιμη για λήψη.",
-  "NotificationOptionApplicationUpdateAvailable": "Διαθέσιμη ενημερωμένη έκδοση εφαρμογής",
-  "NotificationOptionApplicationUpdateInstalled": "Η ενημέρωση εφαρμογής εγκαταστάθηκε",
-  "NotificationOptionAudioPlayback": "Η αναπαραγωγή ήχου ξεκίνησε",
-  "NotificationOptionAudioPlaybackStopped": "Η αναπαραγωγή ήχου σταμάτησε",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Η αναπαραγωγή του παιχνιδιού ξεκίνησε",
-  "NotificationOptionGamePlaybackStopped": "Η αναπαραγωγή του παιχνιδιού σταμάτησε",
-  "NotificationOptionInstallationFailed": "Αποτυχία εγκατάστασης",
-  "NotificationOptionNewLibraryContent": "Προστέθηκε νέο περιεχόμενο",
-  "NotificationOptionPluginError": "Αποτυχία του plugin",
-  "NotificationOptionPluginInstalled": "Το plugin εγκαταστάθηκε",
-  "NotificationOptionPluginUninstalled": "Το plugin απεγκαταστάθηκε",
-  "NotificationOptionPluginUpdateInstalled": "Η αναβάθμιση του plugin εγκαταστάθηκε",
-  "NotificationOptionServerRestartRequired": "Απαιτείται επανεκκίνηση του server",
-  "NotificationOptionTaskFailed": "Αποτυχία προγραμματισμένης εργασίας",
-  "NotificationOptionUserLockedOut": "Ο χρήστης αποκλείστηκε",
-  "NotificationOptionVideoPlayback": "Η αναπαραγωγή βίντεο ξεκίνησε",
-  "NotificationOptionVideoPlaybackStopped": "Η αναπαραγωγή βίντεο σταμάτησε",
-  "Photos": "Φωτογραφίες",
-  "Playlists": "Λίστες αναπαραγωγής",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} εγκαταστήθηκε",
-  "PluginUninstalledWithName": "{0} έχει απεγκατασταθεί",
-  "PluginUpdatedWithName": "{0} έχει αναβαθμιστεί",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} αποτυχία",
-  "ScheduledTaskStartedWithName": "{0} ξεκίνησε",
-  "ServerNameNeedsToBeRestarted": "{0} χρειάζεται επανεκκίνηση",
-  "Shows": "Σειρές",
-  "Songs": "Τραγούδια",
-  "StartupEmbyServerIsLoading": "Ο Jellyfin Server φορτώνει. Παρακαλώ δοκιμάστε σε λίγο.",
-  "SubtitleDownloadFailureForItem": "Οι υπότιτλοι απέτυχαν να κατέβουν για {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Οι υπότιτλοι κατέβηκαν για {0}",
-  "Sync": "Συγχρονισμός",
-  "System": "Σύστημα",
-  "TvShows": "Τηλεοπτικές Σειρές",
-  "User": "Χρήστης",
-  "UserCreatedWithName": "Δημιουργήθηκε ο χρήστης {0}",
-  "UserDeletedWithName": "Ο χρήστης {0} έχει διαγραφεί",
-  "UserDownloadingItemWithValues": "{0} κατεβάζει {1}",
-  "UserLockedOutWithName": "Ο χρήστης {0} αποκλείστηκε",
-  "UserOfflineFromDevice": "{0} αποσυνδέθηκε από {1}",
-  "UserOnlineFromDevice": "{0} είναι online απο {1}",
-  "UserPasswordChangedWithName": "Ο κωδικός του χρήστη {0} έχει αλλάξει",
-  "UserPolicyUpdatedWithName": "Η πολιτική χρήστη έχει ενημερωθεί για {0}",
-  "UserStartedPlayingItemWithValues": "{0} παίζει {1} σε {2}",
-  "UserStoppedPlayingItemWithValues": "{0} τελείωσε να παίζει {1} σε {2}",
-  "ValueHasBeenAddedToLibrary": "{0} προστέθηκαν στη βιβλιοθήκη πολυμέσων σας",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Έκδοση {0}"
+    "Albums": "Άλμπουμ",
+    "AppDeviceValues": "Εφαρμογή: {0}, Συσκευή: {1}",
+    "Application": "Εφαρμογή",
+    "Artists": "Καλλιτέχνες",
+    "AuthenticationSucceededWithUserName": "{0} επιτυχείς σύνδεση",
+    "Books": "Βιβλία",
+    "CameraImageUploadedFrom": "Μια νέα εικόνα κάμερας έχει αποσταλεί από {0}",
+    "Channels": "Κανάλια",
+    "ChapterNameValue": "Κεφάλαιο {0}",
+    "Collections": "Συλλογές",
+    "DeviceOfflineWithName": "{0} αποσυνδέθηκε",
+    "DeviceOnlineWithName": "{0} συνδέθηκε",
+    "FailedLoginAttemptWithUserName": "Αποτυχημένη προσπάθεια σύνδεσης από {0}",
+    "Favorites": "Αγαπημένα",
+    "Folders": "Φάκελοι",
+    "Games": "Παιχνίδια",
+    "Genres": "Είδη",
+    "HeaderAlbumArtists": "Άλμπουμ Καλλιτεχνών",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Συνεχίστε να παρακολουθείτε",
+    "HeaderFavoriteAlbums": "Αγαπημένα Άλμπουμ",
+    "HeaderFavoriteArtists": "Αγαπημένοι Καλλιτέχνες",
+    "HeaderFavoriteEpisodes": "Αγαπημένα Επεισόδια",
+    "HeaderFavoriteShows": "Αγαπημένες Σειρές",
+    "HeaderFavoriteSongs": "Αγαπημένα Τραγούδια",
+    "HeaderLiveTV": "Ζωντανή Τηλεόραση",
+    "HeaderNextUp": "Επόμενο",
+    "HeaderRecordingGroups": "Γκρουπ Εγγραφών",
+    "HomeVideos": "Προσωπικά βίντεο",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} προστέθηκε στη βιβλιοθήκη",
+    "ItemRemovedWithName": "{0} διαγράφηκε από τη βιβλιοθήκη",
+    "LabelIpAddressValue": "Διεύθυνση IP: {0}",
+    "LabelRunningTimeValue": "Διάρκεια: {0}",
+    "Latest": "Πρόσφατα",
+    "MessageApplicationUpdated": "Ο Jellyfin Server έχει ενημερωθεί",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Η ενότητα {0} ρύθμισης παραμέτρων του server έχει ενημερωθεί",
+    "MessageServerConfigurationUpdated": "Η ρύθμιση παραμέτρων του server έχει ενημερωθεί",
+    "MixedContent": "Ανάμεικτο Περιεχόμενο",
+    "Movies": "Ταινίες",
+    "Music": "Μουσική",
+    "MusicVideos": "Μουσικά βίντεο",
+    "NameInstallFailed": "{0} η εγκατάσταση απέτυχε",
+    "NameSeasonNumber": "Κύκλος {0}",
+    "NameSeasonUnknown": "Άγνωστος Κύκλος",
+    "NewVersionIsAvailable": "Μια νέα έκδοση του Jellyfin Server είναι διαθέσιμη για λήψη.",
+    "NotificationOptionApplicationUpdateAvailable": "Διαθέσιμη ενημερωμένη έκδοση εφαρμογής",
+    "NotificationOptionApplicationUpdateInstalled": "Η ενημέρωση εφαρμογής εγκαταστάθηκε",
+    "NotificationOptionAudioPlayback": "Η αναπαραγωγή ήχου ξεκίνησε",
+    "NotificationOptionAudioPlaybackStopped": "Η αναπαραγωγή ήχου σταμάτησε",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Η αναπαραγωγή του παιχνιδιού ξεκίνησε",
+    "NotificationOptionGamePlaybackStopped": "Η αναπαραγωγή του παιχνιδιού σταμάτησε",
+    "NotificationOptionInstallationFailed": "Αποτυχία εγκατάστασης",
+    "NotificationOptionNewLibraryContent": "Προστέθηκε νέο περιεχόμενο",
+    "NotificationOptionPluginError": "Αποτυχία του plugin",
+    "NotificationOptionPluginInstalled": "Το plugin εγκαταστάθηκε",
+    "NotificationOptionPluginUninstalled": "Το plugin απεγκαταστάθηκε",
+    "NotificationOptionPluginUpdateInstalled": "Η αναβάθμιση του plugin εγκαταστάθηκε",
+    "NotificationOptionServerRestartRequired": "Απαιτείται επανεκκίνηση του server",
+    "NotificationOptionTaskFailed": "Αποτυχία προγραμματισμένης εργασίας",
+    "NotificationOptionUserLockedOut": "Ο χρήστης αποκλείστηκε",
+    "NotificationOptionVideoPlayback": "Η αναπαραγωγή βίντεο ξεκίνησε",
+    "NotificationOptionVideoPlaybackStopped": "Η αναπαραγωγή βίντεο σταμάτησε",
+    "Photos": "Φωτογραφίες",
+    "Playlists": "Λίστες αναπαραγωγής",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} εγκαταστήθηκε",
+    "PluginUninstalledWithName": "{0} έχει απεγκατασταθεί",
+    "PluginUpdatedWithName": "{0} έχει αναβαθμιστεί",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} αποτυχία",
+    "ScheduledTaskStartedWithName": "{0} ξεκίνησε",
+    "ServerNameNeedsToBeRestarted": "{0} χρειάζεται επανεκκίνηση",
+    "Shows": "Σειρές",
+    "Songs": "Τραγούδια",
+    "StartupEmbyServerIsLoading": "Ο Jellyfin Server φορτώνει. Παρακαλώ δοκιμάστε σε λίγο.",
+    "SubtitleDownloadFailureForItem": "Οι υπότιτλοι απέτυχαν να κατέβουν για {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Οι υπότιτλοι κατέβηκαν για {0}",
+    "Sync": "Συγχρονισμός",
+    "System": "Σύστημα",
+    "TvShows": "Τηλεοπτικές Σειρές",
+    "User": "Χρήστης",
+    "UserCreatedWithName": "Δημιουργήθηκε ο χρήστης {0}",
+    "UserDeletedWithName": "Ο χρήστης {0} έχει διαγραφεί",
+    "UserDownloadingItemWithValues": "{0} κατεβάζει {1}",
+    "UserLockedOutWithName": "Ο χρήστης {0} αποκλείστηκε",
+    "UserOfflineFromDevice": "{0} αποσυνδέθηκε από {1}",
+    "UserOnlineFromDevice": "{0} είναι online απο {1}",
+    "UserPasswordChangedWithName": "Ο κωδικός του χρήστη {0} έχει αλλάξει",
+    "UserPolicyUpdatedWithName": "Η πολιτική χρήστη έχει ενημερωθεί για {0}",
+    "UserStartedPlayingItemWithValues": "{0} παίζει {1} σε {2}",
+    "UserStoppedPlayingItemWithValues": "{0} τελείωσε να παίζει {1} σε {2}",
+    "ValueHasBeenAddedToLibrary": "{0} προστέθηκαν στη βιβλιοθήκη πολυμέσων σας",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Έκδοση {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/en-GB.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favourites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favourite Albums",
-  "HeaderFavoriteArtists": "Favourite Artists",
-  "HeaderFavoriteEpisodes": "Favourite Episodes",
-  "HeaderFavoriteShows": "Favourite Shows",
-  "HeaderFavoriteSongs": "Favourite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "IP address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} has started playing {1}",
-  "UserStoppedPlayingItemWithValues": "{0} has stopped playing {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favourites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favourite Albums",
+    "HeaderFavoriteArtists": "Favourite Artists",
+    "HeaderFavoriteEpisodes": "Favourite Episodes",
+    "HeaderFavoriteShows": "Favourite Shows",
+    "HeaderFavoriteSongs": "Favourite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "IP address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} has started playing {1}",
+    "UserStoppedPlayingItemWithValues": "{0} has stopped playing {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 97 - 97
Emby.Server.Implementations/Localization/Core/en-US.json

@@ -1,99 +1,99 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/es-AR.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/es-MX.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Álbumes",
-  "AppDeviceValues": "App: {0}, Dispositivo: {1}",
-  "Application": "Aplicación",
-  "Artists": "Artistas",
-  "AuthenticationSucceededWithUserName": "{0} autenticado con éxito",
-  "Books": "Libros",
-  "CameraImageUploadedFrom": "Una nueva imagen de cámara ha sido subida desde {0}",
-  "Channels": "Canales",
-  "ChapterNameValue": "Capítulo {0}",
-  "Collections": "Colecciones",
-  "DeviceOfflineWithName": "{0} se ha desconectado",
-  "DeviceOnlineWithName": "{0} está conectado",
-  "FailedLoginAttemptWithUserName": "Intento fallido de inicio de sesión de {0}",
-  "Favorites": "Favoritos",
-  "Folders": "Carpetas",
-  "Games": "Juegos",
-  "Genres": "Géneros",
-  "HeaderAlbumArtists": "Artistas del Álbum",
-  "HeaderCameraUploads": "Subidos desde Camara",
-  "HeaderContinueWatching": "Continuar Viendo",
-  "HeaderFavoriteAlbums": "Álbumes Favoritos",
-  "HeaderFavoriteArtists": "Artistas Favoritos",
-  "HeaderFavoriteEpisodes": "Episodios Preferidos",
-  "HeaderFavoriteShows": "Programas Preferidos",
-  "HeaderFavoriteSongs": "Canciones Favoritas",
-  "HeaderLiveTV": "TV en Vivo",
-  "HeaderNextUp": "A Continuación",
-  "HeaderRecordingGroups": "Grupos de Grabaciones",
-  "HomeVideos": "Videos caseros",
-  "Inherit": "Heredar",
-  "ItemAddedWithName": "{0} fue agregado a la biblioteca",
-  "ItemRemovedWithName": "{0} fue removido de la biblioteca",
-  "LabelIpAddressValue": "Dirección IP: {0}",
-  "LabelRunningTimeValue": "Duración: {0}",
-  "Latest": "Recientes",
-  "MessageApplicationUpdated": "El servidor Jellyfin ha sido actualizado",
-  "MessageApplicationUpdatedTo": "El servidor Jellyfin ha sido actualizado a {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Se ha actualizado la sección {0} de la configuración del servidor",
-  "MessageServerConfigurationUpdated": "Se ha actualizado la configuración del servidor",
-  "MixedContent": "Contenido mezclado",
-  "Movies": "Películas",
-  "Music": "Música",
-  "MusicVideos": "Videos musicales",
-  "NameInstallFailed": "{0} instalación fallida",
-  "NameSeasonNumber": "Temporada {0}",
-  "NameSeasonUnknown": "Temporada Desconocida",
-  "NewVersionIsAvailable": "Una nueva versión del Servidor Jellyfin está disponible para descargar.",
-  "NotificationOptionApplicationUpdateAvailable": "Actualización de aplicación disponible",
-  "NotificationOptionApplicationUpdateInstalled": "Actualización de aplicación instalada",
-  "NotificationOptionAudioPlayback": "Reproducción de audio iniciada",
-  "NotificationOptionAudioPlaybackStopped": "Reproducción de audio detenida",
-  "NotificationOptionCameraImageUploaded": "Imagen de la cámara subida",
-  "NotificationOptionGamePlayback": "Ejecución de juego iniciada",
-  "NotificationOptionGamePlaybackStopped": "Ejecución de juego detenida",
-  "NotificationOptionInstallationFailed": "Falla de instalación",
-  "NotificationOptionNewLibraryContent": "Nuevo contenido agregado",
-  "NotificationOptionPluginError": "Falla de complemento",
-  "NotificationOptionPluginInstalled": "Complemento instalado",
-  "NotificationOptionPluginUninstalled": "Complemento desinstalado",
-  "NotificationOptionPluginUpdateInstalled": "Actualización de complemento instalada",
-  "NotificationOptionServerRestartRequired": "Se necesita reiniciar el Servidor",
-  "NotificationOptionTaskFailed": "Falla de tarea programada",
-  "NotificationOptionUserLockedOut": "Usuario bloqueado",
-  "NotificationOptionVideoPlayback": "Reproducción de video iniciada",
-  "NotificationOptionVideoPlaybackStopped": "Reproducción de video detenida",
-  "Photos": "Fotos",
-  "Playlists": "Listas de reproducción",
-  "Plugin": "Complemento",
-  "PluginInstalledWithName": "{0} fue instalado",
-  "PluginUninstalledWithName": "{0} fue desinstalado",
-  "PluginUpdatedWithName": "{0} fue actualizado",
-  "ProviderValue": "Proveedor: {0}",
-  "ScheduledTaskFailedWithName": "{0} falló",
-  "ScheduledTaskStartedWithName": "{0} Iniciado",
-  "ServerNameNeedsToBeRestarted": "{0} debe ser reiniciado",
-  "Shows": "Programas",
-  "Songs": "Canciones",
-  "StartupEmbyServerIsLoading": "El servidor Jellyfin esta cargando. Por favor intente de nuevo dentro de poco.",
-  "SubtitleDownloadFailureForItem": "Falló la descarga de subtítulos para {0}",
-  "SubtitleDownloadFailureFromForItem": "Falló la descarga de subtitulos desde {0} para {1}",
-  "SubtitlesDownloadedForItem": "Subtítulos descargados para {0}",
-  "Sync": "Sincronizar",
-  "System": "Sistema",
-  "TvShows": "Programas de TV",
-  "User": "Usuario",
-  "UserCreatedWithName": "Se ha creado el usuario {0}",
-  "UserDeletedWithName": "Se ha eliminado el usuario {0}",
-  "UserDownloadingItemWithValues": "{0} esta descargando {1}",
-  "UserLockedOutWithName": "El usuario {0} ha sido bloqueado",
-  "UserOfflineFromDevice": "{0} se ha desconectado desde {1}",
-  "UserOnlineFromDevice": "{0} está en línea desde {1}",
-  "UserPasswordChangedWithName": "Se ha cambiado la contraseña para el usuario {0}",
-  "UserPolicyUpdatedWithName": "Las política de usuario ha sido actualizada por {0}",
-  "UserStartedPlayingItemWithValues": "{0} está reproduciéndose {1} en {2}",
-  "UserStoppedPlayingItemWithValues": "{0} ha terminado de reproducirse {1} en {2}",
-  "ValueHasBeenAddedToLibrary": "{0} se han añadido a su biblioteca de medios",
-  "ValueSpecialEpisodeName": "Especial - {0}",
-  "VersionNumber": "Versión {0}"
+    "Albums": "Álbumes",
+    "AppDeviceValues": "App: {0}, Dispositivo: {1}",
+    "Application": "Aplicación",
+    "Artists": "Artistas",
+    "AuthenticationSucceededWithUserName": "{0} autenticado con éxito",
+    "Books": "Libros",
+    "CameraImageUploadedFrom": "Una nueva imagen de cámara ha sido subida desde {0}",
+    "Channels": "Canales",
+    "ChapterNameValue": "Capítulo {0}",
+    "Collections": "Colecciones",
+    "DeviceOfflineWithName": "{0} se ha desconectado",
+    "DeviceOnlineWithName": "{0} está conectado",
+    "FailedLoginAttemptWithUserName": "Intento fallido de inicio de sesión de {0}",
+    "Favorites": "Favoritos",
+    "Folders": "Carpetas",
+    "Games": "Juegos",
+    "Genres": "Géneros",
+    "HeaderAlbumArtists": "Artistas del Álbum",
+    "HeaderCameraUploads": "Subidos desde Camara",
+    "HeaderContinueWatching": "Continuar Viendo",
+    "HeaderFavoriteAlbums": "Álbumes Favoritos",
+    "HeaderFavoriteArtists": "Artistas Favoritos",
+    "HeaderFavoriteEpisodes": "Episodios Preferidos",
+    "HeaderFavoriteShows": "Programas Preferidos",
+    "HeaderFavoriteSongs": "Canciones Favoritas",
+    "HeaderLiveTV": "TV en Vivo",
+    "HeaderNextUp": "A Continuación",
+    "HeaderRecordingGroups": "Grupos de Grabaciones",
+    "HomeVideos": "Videos caseros",
+    "Inherit": "Heredar",
+    "ItemAddedWithName": "{0} fue agregado a la biblioteca",
+    "ItemRemovedWithName": "{0} fue removido de la biblioteca",
+    "LabelIpAddressValue": "Dirección IP: {0}",
+    "LabelRunningTimeValue": "Duración: {0}",
+    "Latest": "Recientes",
+    "MessageApplicationUpdated": "El servidor Jellyfin ha sido actualizado",
+    "MessageApplicationUpdatedTo": "El servidor Jellyfin ha sido actualizado a {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Se ha actualizado la sección {0} de la configuración del servidor",
+    "MessageServerConfigurationUpdated": "Se ha actualizado la configuración del servidor",
+    "MixedContent": "Contenido mezclado",
+    "Movies": "Películas",
+    "Music": "Música",
+    "MusicVideos": "Videos musicales",
+    "NameInstallFailed": "{0} instalación fallida",
+    "NameSeasonNumber": "Temporada {0}",
+    "NameSeasonUnknown": "Temporada Desconocida",
+    "NewVersionIsAvailable": "Una nueva versión del Servidor Jellyfin está disponible para descargar.",
+    "NotificationOptionApplicationUpdateAvailable": "Actualización de aplicación disponible",
+    "NotificationOptionApplicationUpdateInstalled": "Actualización de aplicación instalada",
+    "NotificationOptionAudioPlayback": "Reproducción de audio iniciada",
+    "NotificationOptionAudioPlaybackStopped": "Reproducción de audio detenida",
+    "NotificationOptionCameraImageUploaded": "Imagen de la cámara subida",
+    "NotificationOptionGamePlayback": "Ejecución de juego iniciada",
+    "NotificationOptionGamePlaybackStopped": "Ejecución de juego detenida",
+    "NotificationOptionInstallationFailed": "Falla de instalación",
+    "NotificationOptionNewLibraryContent": "Nuevo contenido agregado",
+    "NotificationOptionPluginError": "Falla de complemento",
+    "NotificationOptionPluginInstalled": "Complemento instalado",
+    "NotificationOptionPluginUninstalled": "Complemento desinstalado",
+    "NotificationOptionPluginUpdateInstalled": "Actualización de complemento instalada",
+    "NotificationOptionServerRestartRequired": "Se necesita reiniciar el Servidor",
+    "NotificationOptionTaskFailed": "Falla de tarea programada",
+    "NotificationOptionUserLockedOut": "Usuario bloqueado",
+    "NotificationOptionVideoPlayback": "Reproducción de video iniciada",
+    "NotificationOptionVideoPlaybackStopped": "Reproducción de video detenida",
+    "Photos": "Fotos",
+    "Playlists": "Listas de reproducción",
+    "Plugin": "Complemento",
+    "PluginInstalledWithName": "{0} fue instalado",
+    "PluginUninstalledWithName": "{0} fue desinstalado",
+    "PluginUpdatedWithName": "{0} fue actualizado",
+    "ProviderValue": "Proveedor: {0}",
+    "ScheduledTaskFailedWithName": "{0} falló",
+    "ScheduledTaskStartedWithName": "{0} Iniciado",
+    "ServerNameNeedsToBeRestarted": "{0} debe ser reiniciado",
+    "Shows": "Programas",
+    "Songs": "Canciones",
+    "StartupEmbyServerIsLoading": "El servidor Jellyfin esta cargando. Por favor intente de nuevo dentro de poco.",
+    "SubtitleDownloadFailureForItem": "Falló la descarga de subtítulos para {0}",
+    "SubtitleDownloadFailureFromForItem": "Falló la descarga de subtitulos desde {0} para {1}",
+    "SubtitlesDownloadedForItem": "Subtítulos descargados para {0}",
+    "Sync": "Sincronizar",
+    "System": "Sistema",
+    "TvShows": "Programas de TV",
+    "User": "Usuario",
+    "UserCreatedWithName": "Se ha creado el usuario {0}",
+    "UserDeletedWithName": "Se ha eliminado el usuario {0}",
+    "UserDownloadingItemWithValues": "{0} esta descargando {1}",
+    "UserLockedOutWithName": "El usuario {0} ha sido bloqueado",
+    "UserOfflineFromDevice": "{0} se ha desconectado desde {1}",
+    "UserOnlineFromDevice": "{0} está en línea desde {1}",
+    "UserPasswordChangedWithName": "Se ha cambiado la contraseña para el usuario {0}",
+    "UserPolicyUpdatedWithName": "Las política de usuario ha sido actualizada por {0}",
+    "UserStartedPlayingItemWithValues": "{0} está reproduciéndose {1} en {2}",
+    "UserStoppedPlayingItemWithValues": "{0} ha terminado de reproducirse {1} en {2}",
+    "ValueHasBeenAddedToLibrary": "{0} se han añadido a su biblioteca de medios",
+    "ValueSpecialEpisodeName": "Especial - {0}",
+    "VersionNumber": "Versión {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/es.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Álbumes",
-  "AppDeviceValues": "Aplicación: {0}, Dispositivo: {1}",
-  "Application": "Aplicación",
-  "Artists": "Artistas",
-  "AuthenticationSucceededWithUserName": "{0} autenticado correctamente",
-  "Books": "Libros",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Canales",
-  "ChapterNameValue": "Capítulo {0}",
-  "Collections": "Colecciones",
-  "DeviceOfflineWithName": "{0} se ha desconectado",
-  "DeviceOnlineWithName": "{0} está conectado",
-  "FailedLoginAttemptWithUserName": "Error al intentar iniciar sesión a partir de {0}",
-  "Favorites": "Favoritos",
-  "Folders": "Carpetas",
-  "Games": "Juegos",
-  "Genres": "Géneros",
-  "HeaderAlbumArtists": "Artistas del Álbum",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continuar viendo",
-  "HeaderFavoriteAlbums": "Álbumes favoritos",
-  "HeaderFavoriteArtists": "Artistas favoritos",
-  "HeaderFavoriteEpisodes": "Episodios favoritos",
-  "HeaderFavoriteShows": "Programas favoritos",
-  "HeaderFavoriteSongs": "Canciones favoritas",
-  "HeaderLiveTV": "TV en vivo",
-  "HeaderNextUp": "Siguiendo",
-  "HeaderRecordingGroups": "Grupos de grabación",
-  "HomeVideos": "Vídeos de inicio",
-  "Inherit": "Heredar",
-  "ItemAddedWithName": "{0} se ha añadido a la biblioteca",
-  "ItemRemovedWithName": "{0} se elimina de la biblioteca",
-  "LabelIpAddressValue": "Dirección IP: {0}",
-  "LabelRunningTimeValue": "Tiempo de funcionamiento: {0}",
-  "Latest": "Últimos",
-  "MessageApplicationUpdated": "Se ha actualizado el servidor Jellyfin",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "La sección de configuración del servidor {0} ha sido actualizado",
-  "MessageServerConfigurationUpdated": "Se ha actualizado la configuración del servidor",
-  "MixedContent": "Contenido mixto",
-  "Movies": "Peliculas",
-  "Music": "Música",
-  "MusicVideos": "Videos musicales",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Temporada {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Actualización de la aplicación disponible",
-  "NotificationOptionApplicationUpdateInstalled": "Actualización de la aplicación instalada",
-  "NotificationOptionAudioPlayback": "Se inició la reproducción de audio",
-  "NotificationOptionAudioPlaybackStopped": "Se detuvo la reproducción de audio",
-  "NotificationOptionCameraImageUploaded": "Imagen de la cámara cargada",
-  "NotificationOptionGamePlayback": "Se inició la reproducción del juego",
-  "NotificationOptionGamePlaybackStopped": "Se detuvo la reproducción del juego",
-  "NotificationOptionInstallationFailed": "Error de instalación",
-  "NotificationOptionNewLibraryContent": "Nuevo contenido añadido",
-  "NotificationOptionPluginError": "Error en plugin",
-  "NotificationOptionPluginInstalled": "Plugin instalado",
-  "NotificationOptionPluginUninstalled": "Plugin desinstalado",
-  "NotificationOptionPluginUpdateInstalled": "Actualización del complemento instalada",
-  "NotificationOptionServerRestartRequired": "Requiere reinicio del servidor",
-  "NotificationOptionTaskFailed": "Error de tarea programada",
-  "NotificationOptionUserLockedOut": "Usuario bloqueado",
-  "NotificationOptionVideoPlayback": "Se inició la reproducción de vídeo",
-  "NotificationOptionVideoPlaybackStopped": "Reproducción de vídeo detenida",
-  "Photos": "Fotos",
-  "Playlists": "Listas reproducción",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} se ha instalado",
-  "PluginUninstalledWithName": "{0} se ha desinstalado",
-  "PluginUpdatedWithName": "{0} se actualizó",
-  "ProviderValue": "Proveedor: {0}",
-  "ScheduledTaskFailedWithName": "{0} falló",
-  "ScheduledTaskStartedWithName": "{0} iniciada",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Canciones",
-  "StartupEmbyServerIsLoading": "Jellyfin Server se está cargando. Vuelve a intentarlo en breve.",
-  "SubtitleDownloadFailureForItem": "Error al descargar subtítulos para {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Descargar subtítulos para {0}",
-  "Sync": "Sincronizar",
-  "System": "Sistema",
-  "TvShows": "Series TV",
-  "User": "Usuario",
-  "UserCreatedWithName": "El usuario {0} ha sido creado",
-  "UserDeletedWithName": "El usuario {0} ha sido borrado",
-  "UserDownloadingItemWithValues": "{0} está descargando {1}",
-  "UserLockedOutWithName": "El usuario {0} ha sido bloqueado",
-  "UserOfflineFromDevice": "{0} se ha desconectado de {1}",
-  "UserOnlineFromDevice": "{0} está en línea desde {1}",
-  "UserPasswordChangedWithName": "Se ha cambiado la contraseña para el usuario {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} ha comenzado reproducir {1}",
-  "UserStoppedPlayingItemWithValues": "{0} ha parado de reproducir {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Especial - {0}",
-  "VersionNumber": "Versión {0}"
+    "Albums": "Álbumes",
+    "AppDeviceValues": "Aplicación: {0}, Dispositivo: {1}",
+    "Application": "Aplicación",
+    "Artists": "Artistas",
+    "AuthenticationSucceededWithUserName": "{0} autenticado correctamente",
+    "Books": "Libros",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Canales",
+    "ChapterNameValue": "Capítulo {0}",
+    "Collections": "Colecciones",
+    "DeviceOfflineWithName": "{0} se ha desconectado",
+    "DeviceOnlineWithName": "{0} está conectado",
+    "FailedLoginAttemptWithUserName": "Error al intentar iniciar sesión a partir de {0}",
+    "Favorites": "Favoritos",
+    "Folders": "Carpetas",
+    "Games": "Juegos",
+    "Genres": "Géneros",
+    "HeaderAlbumArtists": "Artistas del Álbum",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continuar viendo",
+    "HeaderFavoriteAlbums": "Álbumes favoritos",
+    "HeaderFavoriteArtists": "Artistas favoritos",
+    "HeaderFavoriteEpisodes": "Episodios favoritos",
+    "HeaderFavoriteShows": "Programas favoritos",
+    "HeaderFavoriteSongs": "Canciones favoritas",
+    "HeaderLiveTV": "TV en vivo",
+    "HeaderNextUp": "Siguiendo",
+    "HeaderRecordingGroups": "Grupos de grabación",
+    "HomeVideos": "Vídeos de inicio",
+    "Inherit": "Heredar",
+    "ItemAddedWithName": "{0} se ha añadido a la biblioteca",
+    "ItemRemovedWithName": "{0} se elimina de la biblioteca",
+    "LabelIpAddressValue": "Dirección IP: {0}",
+    "LabelRunningTimeValue": "Tiempo de funcionamiento: {0}",
+    "Latest": "Últimos",
+    "MessageApplicationUpdated": "Se ha actualizado el servidor Jellyfin",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "La sección de configuración del servidor {0} ha sido actualizado",
+    "MessageServerConfigurationUpdated": "Se ha actualizado la configuración del servidor",
+    "MixedContent": "Contenido mixto",
+    "Movies": "Peliculas",
+    "Music": "Música",
+    "MusicVideos": "Videos musicales",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Temporada {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Actualización de la aplicación disponible",
+    "NotificationOptionApplicationUpdateInstalled": "Actualización de la aplicación instalada",
+    "NotificationOptionAudioPlayback": "Se inició la reproducción de audio",
+    "NotificationOptionAudioPlaybackStopped": "Se detuvo la reproducción de audio",
+    "NotificationOptionCameraImageUploaded": "Imagen de la cámara cargada",
+    "NotificationOptionGamePlayback": "Se inició la reproducción del juego",
+    "NotificationOptionGamePlaybackStopped": "Se detuvo la reproducción del juego",
+    "NotificationOptionInstallationFailed": "Error de instalación",
+    "NotificationOptionNewLibraryContent": "Nuevo contenido añadido",
+    "NotificationOptionPluginError": "Error en plugin",
+    "NotificationOptionPluginInstalled": "Plugin instalado",
+    "NotificationOptionPluginUninstalled": "Plugin desinstalado",
+    "NotificationOptionPluginUpdateInstalled": "Actualización del complemento instalada",
+    "NotificationOptionServerRestartRequired": "Requiere reinicio del servidor",
+    "NotificationOptionTaskFailed": "Error de tarea programada",
+    "NotificationOptionUserLockedOut": "Usuario bloqueado",
+    "NotificationOptionVideoPlayback": "Se inició la reproducción de vídeo",
+    "NotificationOptionVideoPlaybackStopped": "Reproducción de vídeo detenida",
+    "Photos": "Fotos",
+    "Playlists": "Listas reproducción",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} se ha instalado",
+    "PluginUninstalledWithName": "{0} se ha desinstalado",
+    "PluginUpdatedWithName": "{0} se actualizó",
+    "ProviderValue": "Proveedor: {0}",
+    "ScheduledTaskFailedWithName": "{0} falló",
+    "ScheduledTaskStartedWithName": "{0} iniciada",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Canciones",
+    "StartupEmbyServerIsLoading": "Jellyfin Server se está cargando. Vuelve a intentarlo en breve.",
+    "SubtitleDownloadFailureForItem": "Error al descargar subtítulos para {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Descargar subtítulos para {0}",
+    "Sync": "Sincronizar",
+    "System": "Sistema",
+    "TvShows": "Series TV",
+    "User": "Usuario",
+    "UserCreatedWithName": "El usuario {0} ha sido creado",
+    "UserDeletedWithName": "El usuario {0} ha sido borrado",
+    "UserDownloadingItemWithValues": "{0} está descargando {1}",
+    "UserLockedOutWithName": "El usuario {0} ha sido bloqueado",
+    "UserOfflineFromDevice": "{0} se ha desconectado de {1}",
+    "UserOnlineFromDevice": "{0} está en línea desde {1}",
+    "UserPasswordChangedWithName": "Se ha cambiado la contraseña para el usuario {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} ha comenzado reproducir {1}",
+    "UserStoppedPlayingItemWithValues": "{0} ha parado de reproducir {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Especial - {0}",
+    "VersionNumber": "Versión {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/fa.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "آلبوم ها",
-  "AppDeviceValues": "برنامه: {0} ، دستگاه: {1}",
-  "Application": "برنامه",
-  "Artists": "هنرمندان",
-  "AuthenticationSucceededWithUserName": "{0} با موفقیت تایید اعتبار شد",
-  "Books": "کتاب ها",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "کانال ها",
-  "ChapterNameValue": "فصل {0}",
-  "Collections": "کلکسیون ها",
-  "DeviceOfflineWithName": "ارتباط {0} قطع شد",
-  "DeviceOnlineWithName": "{0} متصل شده",
-  "FailedLoginAttemptWithUserName": "تلاش برای ورود از {0} ناموفق بود",
-  "Favorites": "مورد علاقه ها",
-  "Folders": "پوشه ها",
-  "Games": "بازی ها",
-  "Genres": "ژانرها",
-  "HeaderAlbumArtists": "هنرمندان آلبوم",
-  "HeaderCameraUploads": "آپلودهای دوربین",
-  "HeaderContinueWatching": "ادامه تماشا",
-  "HeaderFavoriteAlbums": "آلبوم های مورد علاقه",
-  "HeaderFavoriteArtists": "هنرمندان مورد علاقه",
-  "HeaderFavoriteEpisodes": "قسمت های مورد علاقه",
-  "HeaderFavoriteShows": "سریال های مورد علاقه",
-  "HeaderFavoriteSongs": "آهنگ های مورد علاقه",
-  "HeaderLiveTV": "پخش زنده تلویزیون",
-  "HeaderNextUp": "بعدی چیه",
-  "HeaderRecordingGroups": "گروه های ضبط",
-  "HomeVideos": "ویدیوهای خانگی",
-  "Inherit": "به ارث برده",
-  "ItemAddedWithName": "{0} به کتابخانه افزوده شد",
-  "ItemRemovedWithName": "{0} از کتابخانه حذف شد",
-  "LabelIpAddressValue": "آدرس آی پی: {0}",
-  "LabelRunningTimeValue": "زمان اجرا: {0}",
-  "Latest": "آخرین",
-  "MessageApplicationUpdated": "سرور Jellyfin بروزرسانی شد",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "پکربندی بخش {0} سرور  بروزرسانی شد",
-  "MessageServerConfigurationUpdated": "پیکربندی سرور بروزرسانی شد",
-  "MixedContent": "محتوای درهم",
-  "Movies": "فیلم های سینمایی",
-  "Music": "موسیقی",
-  "MusicVideos": "موزیک ویدیوها",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "فصل {0}",
-  "NameSeasonUnknown": "فصل های ناشناخته",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "بروزرسانی برنامه موجود است",
-  "NotificationOptionApplicationUpdateInstalled": "بروزرسانی برنامه نصب شد",
-  "NotificationOptionAudioPlayback": "پخش صدا آغاز شد",
-  "NotificationOptionAudioPlaybackStopped": "پخش صدا متوقف شد",
-  "NotificationOptionCameraImageUploaded": "تصاویر دوربین آپلود شد",
-  "NotificationOptionGamePlayback": "پخش بازی آغاز شد",
-  "NotificationOptionGamePlaybackStopped": "پخش بازی متوقف شد",
-  "NotificationOptionInstallationFailed": "شکست نصب",
-  "NotificationOptionNewLibraryContent": "محتوای جدید افزوده شد",
-  "NotificationOptionPluginError": "خرابی افزونه",
-  "NotificationOptionPluginInstalled": "افزونه نصب شد",
-  "NotificationOptionPluginUninstalled": "افزونه حذف شد",
-  "NotificationOptionPluginUpdateInstalled": "بروزرسانی افزونه نصب شد",
-  "NotificationOptionServerRestartRequired": "شروع مجدد سرور نیاز است",
-  "NotificationOptionTaskFailed": "شکست وظیفه برنامه ریزی شده",
-  "NotificationOptionUserLockedOut": "کاربر از سیستم خارج شد",
-  "NotificationOptionVideoPlayback": "پخش ویدیو آغاز شد",
-  "NotificationOptionVideoPlaybackStopped": "پخش ویدیو متوقف شد",
-  "Photos": "عکس ها",
-  "Playlists": "لیست های پخش",
-  "Plugin": "افزونه",
-  "PluginInstalledWithName": "{0} نصب شد",
-  "PluginUninstalledWithName": "{0} حذف شد",
-  "PluginUpdatedWithName": "{0} آپدیت شد",
-  "ProviderValue": "ارائه دهنده: {0}",
-  "ScheduledTaskFailedWithName": "{0} ناموفق بود",
-  "ScheduledTaskStartedWithName": "{0} شروع شد",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "سریال ها",
-  "Songs": "آهنگ ها",
-  "StartupEmbyServerIsLoading": "سرور Jellyfin در حال بارگیری است. لطفا کمی بعد دوباره تلاش کنید.",
-  "SubtitleDownloadFailureForItem": "دانلود زیرنویس برای {0} ناموفق بود",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "زیرنویس {0} دانلود شد",
-  "Sync": "همگامسازی",
-  "System": "سیستم",
-  "TvShows": "سریال های تلویزیونی",
-  "User": "کاربر",
-  "UserCreatedWithName": "کاربر {0} ایجاد شد",
-  "UserDeletedWithName": "کاربر {0} حذف شد",
-  "UserDownloadingItemWithValues": "{0} در حال دانلود است {1}",
-  "UserLockedOutWithName": "کاربر {0} از سیستم خارج شد",
-  "UserOfflineFromDevice": "ارتباط {0} از {1} قطع شد",
-  "UserOnlineFromDevice": "{0}از {1} آنلاین میباشد",
-  "UserPasswordChangedWithName": "رمز برای کاربر {0} تغییر یافت",
-  "UserPolicyUpdatedWithName": "سیاست کاربری برای {0} بروزرسانی شد",
-  "UserStartedPlayingItemWithValues": "{0} شروع به پخش {1} کرد",
-  "UserStoppedPlayingItemWithValues": "{0} پخش {1} را متوقف کرد",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "ویژه- {0}",
-  "VersionNumber": "نسخه {0}"
+    "Albums": "آلبوم ها",
+    "AppDeviceValues": "برنامه: {0} ، دستگاه: {1}",
+    "Application": "برنامه",
+    "Artists": "هنرمندان",
+    "AuthenticationSucceededWithUserName": "{0} با موفقیت تایید اعتبار شد",
+    "Books": "کتاب ها",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "کانال ها",
+    "ChapterNameValue": "فصل {0}",
+    "Collections": "کلکسیون ها",
+    "DeviceOfflineWithName": "ارتباط {0} قطع شد",
+    "DeviceOnlineWithName": "{0} متصل شده",
+    "FailedLoginAttemptWithUserName": "تلاش برای ورود از {0} ناموفق بود",
+    "Favorites": "مورد علاقه ها",
+    "Folders": "پوشه ها",
+    "Games": "بازی ها",
+    "Genres": "ژانرها",
+    "HeaderAlbumArtists": "هنرمندان آلبوم",
+    "HeaderCameraUploads": "آپلودهای دوربین",
+    "HeaderContinueWatching": "ادامه تماشا",
+    "HeaderFavoriteAlbums": "آلبوم های مورد علاقه",
+    "HeaderFavoriteArtists": "هنرمندان مورد علاقه",
+    "HeaderFavoriteEpisodes": "قسمت های مورد علاقه",
+    "HeaderFavoriteShows": "سریال های مورد علاقه",
+    "HeaderFavoriteSongs": "آهنگ های مورد علاقه",
+    "HeaderLiveTV": "پخش زنده تلویزیون",
+    "HeaderNextUp": "بعدی چیه",
+    "HeaderRecordingGroups": "گروه های ضبط",
+    "HomeVideos": "ویدیوهای خانگی",
+    "Inherit": "به ارث برده",
+    "ItemAddedWithName": "{0} به کتابخانه افزوده شد",
+    "ItemRemovedWithName": "{0} از کتابخانه حذف شد",
+    "LabelIpAddressValue": "آدرس آی پی: {0}",
+    "LabelRunningTimeValue": "زمان اجرا: {0}",
+    "Latest": "آخرین",
+    "MessageApplicationUpdated": "سرور Jellyfin بروزرسانی شد",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "پکربندی بخش {0} سرور  بروزرسانی شد",
+    "MessageServerConfigurationUpdated": "پیکربندی سرور بروزرسانی شد",
+    "MixedContent": "محتوای درهم",
+    "Movies": "فیلم های سینمایی",
+    "Music": "موسیقی",
+    "MusicVideos": "موزیک ویدیوها",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "فصل {0}",
+    "NameSeasonUnknown": "فصل های ناشناخته",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "بروزرسانی برنامه موجود است",
+    "NotificationOptionApplicationUpdateInstalled": "بروزرسانی برنامه نصب شد",
+    "NotificationOptionAudioPlayback": "پخش صدا آغاز شد",
+    "NotificationOptionAudioPlaybackStopped": "پخش صدا متوقف شد",
+    "NotificationOptionCameraImageUploaded": "تصاویر دوربین آپلود شد",
+    "NotificationOptionGamePlayback": "پخش بازی آغاز شد",
+    "NotificationOptionGamePlaybackStopped": "پخش بازی متوقف شد",
+    "NotificationOptionInstallationFailed": "شکست نصب",
+    "NotificationOptionNewLibraryContent": "محتوای جدید افزوده شد",
+    "NotificationOptionPluginError": "خرابی افزونه",
+    "NotificationOptionPluginInstalled": "افزونه نصب شد",
+    "NotificationOptionPluginUninstalled": "افزونه حذف شد",
+    "NotificationOptionPluginUpdateInstalled": "بروزرسانی افزونه نصب شد",
+    "NotificationOptionServerRestartRequired": "شروع مجدد سرور نیاز است",
+    "NotificationOptionTaskFailed": "شکست وظیفه برنامه ریزی شده",
+    "NotificationOptionUserLockedOut": "کاربر از سیستم خارج شد",
+    "NotificationOptionVideoPlayback": "پخش ویدیو آغاز شد",
+    "NotificationOptionVideoPlaybackStopped": "پخش ویدیو متوقف شد",
+    "Photos": "عکس ها",
+    "Playlists": "لیست های پخش",
+    "Plugin": "افزونه",
+    "PluginInstalledWithName": "{0} نصب شد",
+    "PluginUninstalledWithName": "{0} حذف شد",
+    "PluginUpdatedWithName": "{0} آپدیت شد",
+    "ProviderValue": "ارائه دهنده: {0}",
+    "ScheduledTaskFailedWithName": "{0} ناموفق بود",
+    "ScheduledTaskStartedWithName": "{0} شروع شد",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "سریال ها",
+    "Songs": "آهنگ ها",
+    "StartupEmbyServerIsLoading": "سرور Jellyfin در حال بارگیری است. لطفا کمی بعد دوباره تلاش کنید.",
+    "SubtitleDownloadFailureForItem": "دانلود زیرنویس برای {0} ناموفق بود",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "زیرنویس {0} دانلود شد",
+    "Sync": "همگامسازی",
+    "System": "سیستم",
+    "TvShows": "سریال های تلویزیونی",
+    "User": "کاربر",
+    "UserCreatedWithName": "کاربر {0} ایجاد شد",
+    "UserDeletedWithName": "کاربر {0} حذف شد",
+    "UserDownloadingItemWithValues": "{0} در حال دانلود است {1}",
+    "UserLockedOutWithName": "کاربر {0} از سیستم خارج شد",
+    "UserOfflineFromDevice": "ارتباط {0} از {1} قطع شد",
+    "UserOnlineFromDevice": "{0}از {1} آنلاین میباشد",
+    "UserPasswordChangedWithName": "رمز برای کاربر {0} تغییر یافت",
+    "UserPolicyUpdatedWithName": "سیاست کاربری برای {0} بروزرسانی شد",
+    "UserStartedPlayingItemWithValues": "{0} شروع به پخش {1} کرد",
+    "UserStoppedPlayingItemWithValues": "{0} پخش {1} را متوقف کرد",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "ویژه- {0}",
+    "VersionNumber": "نسخه {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/fr-CA.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continuer à regarder",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "À Suivre",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Spécial - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continuer à regarder",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "À Suivre",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Spécial - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/fr.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "Application : {0}, Appareil : {1}",
-  "Application": "Application",
-  "Artists": "Artistes",
-  "AuthenticationSucceededWithUserName": "{0} s'est authentifié avec succès",
-  "Books": "Livres",
-  "CameraImageUploadedFrom": "Une image de caméra a été chargée depuis {0}",
-  "Channels": "Chaînes",
-  "ChapterNameValue": "Chapitre {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} s'est déconnecté",
-  "DeviceOnlineWithName": "{0} est connecté",
-  "FailedLoginAttemptWithUserName": "Échec d'une tentative de connexion de {0}",
-  "Favorites": "Favoris",
-  "Folders": "Dossiers",
-  "Games": "Jeux",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Artistes de l'album",
-  "HeaderCameraUploads": "Photos transférées",
-  "HeaderContinueWatching": "Continuer à regarder",
-  "HeaderFavoriteAlbums": "Albums favoris",
-  "HeaderFavoriteArtists": "Artistes favoris",
-  "HeaderFavoriteEpisodes": "Épisodes favoris",
-  "HeaderFavoriteShows": "Séries favorites",
-  "HeaderFavoriteSongs": "Chansons favorites",
-  "HeaderLiveTV": "TV en direct",
-  "HeaderNextUp": "En Cours",
-  "HeaderRecordingGroups": "Groupes d'enregistrements",
-  "HomeVideos": "Vidéos personnelles",
-  "Inherit": "Hériter",
-  "ItemAddedWithName": "{0} a été ajouté à la médiathèque",
-  "ItemRemovedWithName": "{0} a été supprimé de la médiathèque",
-  "LabelIpAddressValue": "Adresse IP : {0}",
-  "LabelRunningTimeValue": "Durée : {0}",
-  "Latest": "Derniers",
-  "MessageApplicationUpdated": "Le serveur Jellyfin a été mis à jour",
-  "MessageApplicationUpdatedTo": "Jellyfin Serveur a été mis à jour en version {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "La configuration de la section {0} du serveur a été mise à jour",
-  "MessageServerConfigurationUpdated": "La configuration du serveur a été mise à jour.",
-  "MixedContent": "Contenu mixte",
-  "Movies": "Films",
-  "Music": "Musique",
-  "MusicVideos": "Vidéos musicales",
-  "NameInstallFailed": "{0} échec d'installation",
-  "NameSeasonNumber": "Saison {0}",
-  "NameSeasonUnknown": "Saison Inconnue",
-  "NewVersionIsAvailable": "Une nouvelle version d'Jellyfin Serveur est disponible au téléchargement.",
-  "NotificationOptionApplicationUpdateAvailable": "Mise à jour de l'application disponible",
-  "NotificationOptionApplicationUpdateInstalled": "Mise à jour de l'application installée",
-  "NotificationOptionAudioPlayback": "Lecture audio démarrée",
-  "NotificationOptionAudioPlaybackStopped": "Lecture audio arrêtée",
-  "NotificationOptionCameraImageUploaded": "L'image de l'appareil photo a été transférée",
-  "NotificationOptionGamePlayback": "Lecture de jeu démarrée",
-  "NotificationOptionGamePlaybackStopped": "Lecture de jeu arrêtée",
-  "NotificationOptionInstallationFailed": "Échec d'installation",
-  "NotificationOptionNewLibraryContent": "Nouveau contenu ajouté",
-  "NotificationOptionPluginError": "Erreur d'extension",
-  "NotificationOptionPluginInstalled": "Extension installée",
-  "NotificationOptionPluginUninstalled": "Extension désinstallée",
-  "NotificationOptionPluginUpdateInstalled": "Mise à jour d'extension installée",
-  "NotificationOptionServerRestartRequired": "Un redémarrage du serveur est requis",
-  "NotificationOptionTaskFailed": "Échec de tâche planifiée",
-  "NotificationOptionUserLockedOut": "Utilisateur verrouillé",
-  "NotificationOptionVideoPlayback": "Lecture vidéo démarrée",
-  "NotificationOptionVideoPlaybackStopped": "Lecture vidéo arrêtée",
-  "Photos": "Photos",
-  "Playlists": "Listes de lecture",
-  "Plugin": "Extension",
-  "PluginInstalledWithName": "{0} a été installé",
-  "PluginUninstalledWithName": "{0} a été désinstallé",
-  "PluginUpdatedWithName": "{0} a été mis à jour",
-  "ProviderValue": "Fournisseur : {0}",
-  "ScheduledTaskFailedWithName": "{0} a échoué",
-  "ScheduledTaskStartedWithName": "{0} a commencé",
-  "ServerNameNeedsToBeRestarted": "{0} doit être redémarré",
-  "Shows": "Émissions",
-  "Songs": "Chansons",
-  "StartupEmbyServerIsLoading": "Le serveur Jellyfin est en cours de chargement. Veuillez réessayer dans quelques instants.",
-  "SubtitleDownloadFailureForItem": "Le téléchargement des sous-titres pour {0} a échoué.",
-  "SubtitleDownloadFailureFromForItem": "Échec du téléchargement des sous-titres depuis {0} pour {1}",
-  "SubtitlesDownloadedForItem": "Les sous-titres de {0} ont été téléchargés",
-  "Sync": "Synchroniser",
-  "System": "Système",
-  "TvShows": "Séries Télé",
-  "User": "Utilisateur",
-  "UserCreatedWithName": "L'utilisateur {0} a été créé",
-  "UserDeletedWithName": "L'utilisateur {0} a été supprimé",
-  "UserDownloadingItemWithValues": "{0} est en train de télécharger {1}",
-  "UserLockedOutWithName": "L'utilisateur {0} a été verrouillé",
-  "UserOfflineFromDevice": "{0} s'est déconnecté depuis {1}",
-  "UserOnlineFromDevice": "{0} s'est connecté depuis {1}",
-  "UserPasswordChangedWithName": "Le mot de passe pour l'utilisateur {0} a été modifié",
-  "UserPolicyUpdatedWithName": "La politique de l'utilisateur a été mise à jour pour {0}",
-  "UserStartedPlayingItemWithValues": "{0} est entrain de lire {1} sur {2}",
-  "UserStoppedPlayingItemWithValues": "{0} vient d'arrêter la lecture de {1} sur {2}",
-  "ValueHasBeenAddedToLibrary": "{0} a été ajouté à votre librairie",
-  "ValueSpecialEpisodeName": "Spécial - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "Application : {0}, Appareil : {1}",
+    "Application": "Application",
+    "Artists": "Artistes",
+    "AuthenticationSucceededWithUserName": "{0} s'est authentifié avec succès",
+    "Books": "Livres",
+    "CameraImageUploadedFrom": "Une image de caméra a été chargée depuis {0}",
+    "Channels": "Chaînes",
+    "ChapterNameValue": "Chapitre {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} s'est déconnecté",
+    "DeviceOnlineWithName": "{0} est connecté",
+    "FailedLoginAttemptWithUserName": "Échec d'une tentative de connexion de {0}",
+    "Favorites": "Favoris",
+    "Folders": "Dossiers",
+    "Games": "Jeux",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Artistes de l'album",
+    "HeaderCameraUploads": "Photos transférées",
+    "HeaderContinueWatching": "Continuer à regarder",
+    "HeaderFavoriteAlbums": "Albums favoris",
+    "HeaderFavoriteArtists": "Artistes favoris",
+    "HeaderFavoriteEpisodes": "Épisodes favoris",
+    "HeaderFavoriteShows": "Séries favorites",
+    "HeaderFavoriteSongs": "Chansons favorites",
+    "HeaderLiveTV": "TV en direct",
+    "HeaderNextUp": "En Cours",
+    "HeaderRecordingGroups": "Groupes d'enregistrements",
+    "HomeVideos": "Vidéos personnelles",
+    "Inherit": "Hériter",
+    "ItemAddedWithName": "{0} a été ajouté à la médiathèque",
+    "ItemRemovedWithName": "{0} a été supprimé de la médiathèque",
+    "LabelIpAddressValue": "Adresse IP : {0}",
+    "LabelRunningTimeValue": "Durée : {0}",
+    "Latest": "Derniers",
+    "MessageApplicationUpdated": "Le serveur Jellyfin a été mis à jour",
+    "MessageApplicationUpdatedTo": "Jellyfin Serveur a été mis à jour en version {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "La configuration de la section {0} du serveur a été mise à jour",
+    "MessageServerConfigurationUpdated": "La configuration du serveur a été mise à jour.",
+    "MixedContent": "Contenu mixte",
+    "Movies": "Films",
+    "Music": "Musique",
+    "MusicVideos": "Vidéos musicales",
+    "NameInstallFailed": "{0} échec d'installation",
+    "NameSeasonNumber": "Saison {0}",
+    "NameSeasonUnknown": "Saison Inconnue",
+    "NewVersionIsAvailable": "Une nouvelle version d'Jellyfin Serveur est disponible au téléchargement.",
+    "NotificationOptionApplicationUpdateAvailable": "Mise à jour de l'application disponible",
+    "NotificationOptionApplicationUpdateInstalled": "Mise à jour de l'application installée",
+    "NotificationOptionAudioPlayback": "Lecture audio démarrée",
+    "NotificationOptionAudioPlaybackStopped": "Lecture audio arrêtée",
+    "NotificationOptionCameraImageUploaded": "L'image de l'appareil photo a été transférée",
+    "NotificationOptionGamePlayback": "Lecture de jeu démarrée",
+    "NotificationOptionGamePlaybackStopped": "Lecture de jeu arrêtée",
+    "NotificationOptionInstallationFailed": "Échec d'installation",
+    "NotificationOptionNewLibraryContent": "Nouveau contenu ajouté",
+    "NotificationOptionPluginError": "Erreur d'extension",
+    "NotificationOptionPluginInstalled": "Extension installée",
+    "NotificationOptionPluginUninstalled": "Extension désinstallée",
+    "NotificationOptionPluginUpdateInstalled": "Mise à jour d'extension installée",
+    "NotificationOptionServerRestartRequired": "Un redémarrage du serveur est requis",
+    "NotificationOptionTaskFailed": "Échec de tâche planifiée",
+    "NotificationOptionUserLockedOut": "Utilisateur verrouillé",
+    "NotificationOptionVideoPlayback": "Lecture vidéo démarrée",
+    "NotificationOptionVideoPlaybackStopped": "Lecture vidéo arrêtée",
+    "Photos": "Photos",
+    "Playlists": "Listes de lecture",
+    "Plugin": "Extension",
+    "PluginInstalledWithName": "{0} a été installé",
+    "PluginUninstalledWithName": "{0} a été désinstallé",
+    "PluginUpdatedWithName": "{0} a été mis à jour",
+    "ProviderValue": "Fournisseur : {0}",
+    "ScheduledTaskFailedWithName": "{0} a échoué",
+    "ScheduledTaskStartedWithName": "{0} a commencé",
+    "ServerNameNeedsToBeRestarted": "{0} doit être redémarré",
+    "Shows": "Émissions",
+    "Songs": "Chansons",
+    "StartupEmbyServerIsLoading": "Le serveur Jellyfin est en cours de chargement. Veuillez réessayer dans quelques instants.",
+    "SubtitleDownloadFailureForItem": "Le téléchargement des sous-titres pour {0} a échoué.",
+    "SubtitleDownloadFailureFromForItem": "Échec du téléchargement des sous-titres depuis {0} pour {1}",
+    "SubtitlesDownloadedForItem": "Les sous-titres de {0} ont été téléchargés",
+    "Sync": "Synchroniser",
+    "System": "Système",
+    "TvShows": "Séries Télé",
+    "User": "Utilisateur",
+    "UserCreatedWithName": "L'utilisateur {0} a été créé",
+    "UserDeletedWithName": "L'utilisateur {0} a été supprimé",
+    "UserDownloadingItemWithValues": "{0} est en train de télécharger {1}",
+    "UserLockedOutWithName": "L'utilisateur {0} a été verrouillé",
+    "UserOfflineFromDevice": "{0} s'est déconnecté depuis {1}",
+    "UserOnlineFromDevice": "{0} s'est connecté depuis {1}",
+    "UserPasswordChangedWithName": "Le mot de passe pour l'utilisateur {0} a été modifié",
+    "UserPolicyUpdatedWithName": "La politique de l'utilisateur a été mise à jour pour {0}",
+    "UserStartedPlayingItemWithValues": "{0} est entrain de lire {1} sur {2}",
+    "UserStoppedPlayingItemWithValues": "{0} vient d'arrêter la lecture de {1} sur {2}",
+    "ValueHasBeenAddedToLibrary": "{0} a été ajouté à votre librairie",
+    "ValueSpecialEpisodeName": "Spécial - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/gsw.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Büecher",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Spiel",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Albuminterprete",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Wiiterluege",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Besti Interpret",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Besti Lieder",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Ufnahmegruppe",
-  "HomeVideos": "Heimfilmli",
-  "Inherit": "Hinzuefüege",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Letschte",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Gmischte Inhalt",
-  "Movies": "Movies",
-  "Music": "Musig",
-  "MusicVideos": "Musigfilm",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Fotis",
-  "Playlists": "Abspielliste",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Spezial - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Büecher",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Spiel",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Albuminterprete",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Wiiterluege",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Besti Interpret",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Besti Lieder",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Ufnahmegruppe",
+    "HomeVideos": "Heimfilmli",
+    "Inherit": "Hinzuefüege",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Letschte",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Gmischte Inhalt",
+    "Movies": "Movies",
+    "Music": "Musig",
+    "MusicVideos": "Musigfilm",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Fotis",
+    "Playlists": "Abspielliste",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Spezial - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/he.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "ספרים",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "משחקים",
-  "Genres": "ז'אנרים",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "המשך בצפייה",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "קבוצות הקלטה",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "אחרון",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "תוכן מעורב",
-  "Movies": "סרטים",
-  "Music": "מוזיקה",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "תמונות",
-  "Playlists": "רשימות ניגון",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "סנכרן",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "מיוחד- {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "ספרים",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "משחקים",
+    "Genres": "ז'אנרים",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "המשך בצפייה",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "קבוצות הקלטה",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "אחרון",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "תוכן מעורב",
+    "Movies": "סרטים",
+    "Music": "מוזיקה",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "תמונות",
+    "Playlists": "רשימות ניגון",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "סנכרן",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "מיוחד- {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/hr.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albumi",
-  "AppDeviceValues": "Aplikacija: {0}, Uređaj: {1}",
-  "Application": "Aplikacija",
-  "Artists": "Izvođači",
-  "AuthenticationSucceededWithUserName": "{0} uspješno ovjerena",
-  "Books": "Knjige",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanali",
-  "ChapterNameValue": "Poglavlje {0}",
-  "Collections": "Kolekcije",
-  "DeviceOfflineWithName": "{0} se odspojilo",
-  "DeviceOnlineWithName": "{0} je spojeno",
-  "FailedLoginAttemptWithUserName": "Neuspjeli pokušaj prijave za {0}",
-  "Favorites": "Omiljeni",
-  "Folders": "Mape",
-  "Games": "Igre",
-  "Genres": "Žanrovi",
-  "HeaderAlbumArtists": "Izvođači albuma",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Omiljeni albumi",
-  "HeaderFavoriteArtists": "Omiljeni izvođači",
-  "HeaderFavoriteEpisodes": "Omiljene epizode",
-  "HeaderFavoriteShows": "Omiljene emisije",
-  "HeaderFavoriteSongs": "Omiljene pjesme",
-  "HeaderLiveTV": "TV uživo",
-  "HeaderNextUp": "Sljedeće je",
-  "HeaderRecordingGroups": "Grupa snimka",
-  "HomeVideos": "Kućni videi",
-  "Inherit": "Naslijedi",
-  "ItemAddedWithName": "{0} je dodano u biblioteku",
-  "ItemRemovedWithName": "{0} je uklonjen iz biblioteke",
-  "LabelIpAddressValue": "Ip adresa: {0}",
-  "LabelRunningTimeValue": "Vrijeme rada: {0}",
-  "Latest": "Najnovije",
-  "MessageApplicationUpdated": "Jellyfin Server je ažuriran",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Odjeljak postavka servera {0} je ažuriran",
-  "MessageServerConfigurationUpdated": "Postavke servera su ažurirane",
-  "MixedContent": "Miješani sadržaj",
-  "Movies": "Filmovi",
-  "Music": "Glazba",
-  "MusicVideos": "Glazbeni spotovi",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Sezona {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Dostupno ažuriranje aplikacije",
-  "NotificationOptionApplicationUpdateInstalled": "Instalirano ažuriranje aplikacije",
-  "NotificationOptionAudioPlayback": "Reprodukcija glazbe započeta",
-  "NotificationOptionAudioPlaybackStopped": "Reprodukcija audiozapisa je zaustavljena",
-  "NotificationOptionCameraImageUploaded": "Slike kamere preuzete",
-  "NotificationOptionGamePlayback": "Igrica pokrenuta",
-  "NotificationOptionGamePlaybackStopped": "Reprodukcija igre je zaustavljena",
-  "NotificationOptionInstallationFailed": "Instalacija nije izvršena",
-  "NotificationOptionNewLibraryContent": "Novi sadržaj je dodan",
-  "NotificationOptionPluginError": "Dodatak otkazao",
-  "NotificationOptionPluginInstalled": "Dodatak instaliran",
-  "NotificationOptionPluginUninstalled": "Dodatak uklonjen",
-  "NotificationOptionPluginUpdateInstalled": "Instalirano ažuriranje za dodatak",
-  "NotificationOptionServerRestartRequired": "Potrebno ponovo pokretanje servera",
-  "NotificationOptionTaskFailed": "Zakazan zadatak nije izvršen",
-  "NotificationOptionUserLockedOut": "Korisnik zaključan",
-  "NotificationOptionVideoPlayback": "Reprodukcija videa započeta",
-  "NotificationOptionVideoPlaybackStopped": "Reprodukcija videozapisa je zaustavljena",
-  "Photos": "Slike",
-  "Playlists": "Popisi",
-  "Plugin": "Dodatak",
-  "PluginInstalledWithName": "{0} je instalirano",
-  "PluginUninstalledWithName": "{0} je deinstalirano",
-  "PluginUpdatedWithName": "{0} je ažurirano",
-  "ProviderValue": "Pružitelj: {0}",
-  "ScheduledTaskFailedWithName": "{0} neuspjelo",
-  "ScheduledTaskStartedWithName": "{0} pokrenuto",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Pjesme",
-  "StartupEmbyServerIsLoading": "Jellyfin Server se učitava. Pokušajte ponovo kasnije.",
-  "SubtitleDownloadFailureForItem": "Titlovi prijevoda nisu preuzeti za {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Titlovi prijevoda preuzeti za {0}",
-  "Sync": "Sink.",
-  "System": "Sistem",
-  "TvShows": "TV Shows",
-  "User": "Korisnik",
-  "UserCreatedWithName": "Korisnik {0} je stvoren",
-  "UserDeletedWithName": "Korisnik {0} je obrisan",
-  "UserDownloadingItemWithValues": "{0} se preuzima {1}",
-  "UserLockedOutWithName": "Korisnik {0} je zaključan",
-  "UserOfflineFromDevice": "{0} se odspojilo od {1}",
-  "UserOnlineFromDevice": "{0} je online od {1}",
-  "UserPasswordChangedWithName": "Lozinka je promijenjena za korisnika {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} je pokrenuo {1}",
-  "UserStoppedPlayingItemWithValues": "{0} je zaustavio {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Specijal - {0}",
-  "VersionNumber": "Verzija {0}"
+    "Albums": "Albumi",
+    "AppDeviceValues": "Aplikacija: {0}, Uređaj: {1}",
+    "Application": "Aplikacija",
+    "Artists": "Izvođači",
+    "AuthenticationSucceededWithUserName": "{0} uspješno ovjerena",
+    "Books": "Knjige",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanali",
+    "ChapterNameValue": "Poglavlje {0}",
+    "Collections": "Kolekcije",
+    "DeviceOfflineWithName": "{0} se odspojilo",
+    "DeviceOnlineWithName": "{0} je spojeno",
+    "FailedLoginAttemptWithUserName": "Neuspjeli pokušaj prijave za {0}",
+    "Favorites": "Omiljeni",
+    "Folders": "Mape",
+    "Games": "Igre",
+    "Genres": "Žanrovi",
+    "HeaderAlbumArtists": "Izvođači albuma",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Omiljeni albumi",
+    "HeaderFavoriteArtists": "Omiljeni izvođači",
+    "HeaderFavoriteEpisodes": "Omiljene epizode",
+    "HeaderFavoriteShows": "Omiljene emisije",
+    "HeaderFavoriteSongs": "Omiljene pjesme",
+    "HeaderLiveTV": "TV uživo",
+    "HeaderNextUp": "Sljedeće je",
+    "HeaderRecordingGroups": "Grupa snimka",
+    "HomeVideos": "Kućni videi",
+    "Inherit": "Naslijedi",
+    "ItemAddedWithName": "{0} je dodano u biblioteku",
+    "ItemRemovedWithName": "{0} je uklonjen iz biblioteke",
+    "LabelIpAddressValue": "Ip adresa: {0}",
+    "LabelRunningTimeValue": "Vrijeme rada: {0}",
+    "Latest": "Najnovije",
+    "MessageApplicationUpdated": "Jellyfin Server je ažuriran",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Odjeljak postavka servera {0} je ažuriran",
+    "MessageServerConfigurationUpdated": "Postavke servera su ažurirane",
+    "MixedContent": "Miješani sadržaj",
+    "Movies": "Filmovi",
+    "Music": "Glazba",
+    "MusicVideos": "Glazbeni spotovi",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Sezona {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Dostupno ažuriranje aplikacije",
+    "NotificationOptionApplicationUpdateInstalled": "Instalirano ažuriranje aplikacije",
+    "NotificationOptionAudioPlayback": "Reprodukcija glazbe započeta",
+    "NotificationOptionAudioPlaybackStopped": "Reprodukcija audiozapisa je zaustavljena",
+    "NotificationOptionCameraImageUploaded": "Slike kamere preuzete",
+    "NotificationOptionGamePlayback": "Igrica pokrenuta",
+    "NotificationOptionGamePlaybackStopped": "Reprodukcija igre je zaustavljena",
+    "NotificationOptionInstallationFailed": "Instalacija nije izvršena",
+    "NotificationOptionNewLibraryContent": "Novi sadržaj je dodan",
+    "NotificationOptionPluginError": "Dodatak otkazao",
+    "NotificationOptionPluginInstalled": "Dodatak instaliran",
+    "NotificationOptionPluginUninstalled": "Dodatak uklonjen",
+    "NotificationOptionPluginUpdateInstalled": "Instalirano ažuriranje za dodatak",
+    "NotificationOptionServerRestartRequired": "Potrebno ponovo pokretanje servera",
+    "NotificationOptionTaskFailed": "Zakazan zadatak nije izvršen",
+    "NotificationOptionUserLockedOut": "Korisnik zaključan",
+    "NotificationOptionVideoPlayback": "Reprodukcija videa započeta",
+    "NotificationOptionVideoPlaybackStopped": "Reprodukcija videozapisa je zaustavljena",
+    "Photos": "Slike",
+    "Playlists": "Popisi",
+    "Plugin": "Dodatak",
+    "PluginInstalledWithName": "{0} je instalirano",
+    "PluginUninstalledWithName": "{0} je deinstalirano",
+    "PluginUpdatedWithName": "{0} je ažurirano",
+    "ProviderValue": "Pružitelj: {0}",
+    "ScheduledTaskFailedWithName": "{0} neuspjelo",
+    "ScheduledTaskStartedWithName": "{0} pokrenuto",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Pjesme",
+    "StartupEmbyServerIsLoading": "Jellyfin Server se učitava. Pokušajte ponovo kasnije.",
+    "SubtitleDownloadFailureForItem": "Titlovi prijevoda nisu preuzeti za {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Titlovi prijevoda preuzeti za {0}",
+    "Sync": "Sink.",
+    "System": "Sistem",
+    "TvShows": "TV Shows",
+    "User": "Korisnik",
+    "UserCreatedWithName": "Korisnik {0} je stvoren",
+    "UserDeletedWithName": "Korisnik {0} je obrisan",
+    "UserDownloadingItemWithValues": "{0} se preuzima {1}",
+    "UserLockedOutWithName": "Korisnik {0} je zaključan",
+    "UserOfflineFromDevice": "{0} se odspojilo od {1}",
+    "UserOnlineFromDevice": "{0} je online od {1}",
+    "UserPasswordChangedWithName": "Lozinka je promijenjena za korisnika {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} je pokrenuo {1}",
+    "UserStoppedPlayingItemWithValues": "{0} je zaustavio {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Specijal - {0}",
+    "VersionNumber": "Verzija {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/hu.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albumok",
-  "AppDeviceValues": "Program: {0}, Eszköz: {1}",
-  "Application": "Program",
-  "Artists": "Előadók",
-  "AuthenticationSucceededWithUserName": "{0} sikeresen azonosítva",
-  "Books": "Könyvek",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Csatornák",
-  "ChapterNameValue": "Jelenet {0}",
-  "Collections": "Gyűjtemények",
-  "DeviceOfflineWithName": "{0} kijelentkezett",
-  "DeviceOnlineWithName": "{0} belépett",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Kedvencek",
-  "Folders": "Könyvtárak",
-  "Games": "Játékok",
-  "Genres": "Műfajok",
-  "HeaderAlbumArtists": "Album Előadók",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Vetítés(ek) folytatása",
-  "HeaderFavoriteAlbums": "Kedvenc Albumok",
-  "HeaderFavoriteArtists": "Kedvenc Művészek",
-  "HeaderFavoriteEpisodes": "Kedvenc Epizódok",
-  "HeaderFavoriteShows": "Kedvenc Műsorok",
-  "HeaderFavoriteSongs": "Kedvenc Dalok",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Következik",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Házi videók",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip cím: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Legújabb",
-  "MessageApplicationUpdated": "Jellyfin Szerver frissítve",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Szerver konfigurációs rész {0} frissítve",
-  "MessageServerConfigurationUpdated": "Szerver konfiguráció frissítve",
-  "MixedContent": "Vegyes tartalom",
-  "Movies": "Filmek",
-  "Music": "Zene",
-  "MusicVideos": "Zenei Videók",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Program frissítés elérhető",
-  "NotificationOptionApplicationUpdateInstalled": "Program frissítés telepítve",
-  "NotificationOptionAudioPlayback": "Audió lejátszás elkezdve",
-  "NotificationOptionAudioPlaybackStopped": "Audió lejátszás befejezve",
-  "NotificationOptionCameraImageUploaded": "Kamera kép feltöltve",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Telepítési hiba",
-  "NotificationOptionNewLibraryContent": "Új tartalom hozzáadva",
-  "NotificationOptionPluginError": "Bővítmény hiba",
-  "NotificationOptionPluginInstalled": "Bővítmény telepítve",
-  "NotificationOptionPluginUninstalled": "Bővítmény eltávolítva",
-  "NotificationOptionPluginUpdateInstalled": "Bővítmény frissítés telepítve",
-  "NotificationOptionServerRestartRequired": "Szerver újraindítás szükséges",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "Felhasználó tiltva",
-  "NotificationOptionVideoPlayback": "Videó lejátszás elkezdve",
-  "NotificationOptionVideoPlaybackStopped": "Videó lejátszás befejezve",
-  "Photos": "Fényképek",
-  "Playlists": "Lejátszási listák",
-  "Plugin": "Bővítmény",
-  "PluginInstalledWithName": "{0} telepítve",
-  "PluginUninstalledWithName": "{0} eltávolítva",
-  "PluginUpdatedWithName": "{0} frissítve",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Műsorok",
-  "Songs": "Dalok",
-  "StartupEmbyServerIsLoading": "Jellyfin Szerver betöltődik. Kérjük, próbáld meg újra később.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Szinkronizál",
-  "System": "Rendszer",
-  "TvShows": "TV Műsorok",
-  "User": "Felhasználó",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} letölti {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} kijelentkezett innen  {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} elkezdte játszani a következőt {1}",
-  "UserStoppedPlayingItemWithValues": "{0} befejezte a következőt {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Verzió {0}"
+    "Albums": "Albumok",
+    "AppDeviceValues": "Program: {0}, Eszköz: {1}",
+    "Application": "Program",
+    "Artists": "Előadók",
+    "AuthenticationSucceededWithUserName": "{0} sikeresen azonosítva",
+    "Books": "Könyvek",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Csatornák",
+    "ChapterNameValue": "Jelenet {0}",
+    "Collections": "Gyűjtemények",
+    "DeviceOfflineWithName": "{0} kijelentkezett",
+    "DeviceOnlineWithName": "{0} belépett",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Kedvencek",
+    "Folders": "Könyvtárak",
+    "Games": "Játékok",
+    "Genres": "Műfajok",
+    "HeaderAlbumArtists": "Album Előadók",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Vetítés(ek) folytatása",
+    "HeaderFavoriteAlbums": "Kedvenc Albumok",
+    "HeaderFavoriteArtists": "Kedvenc Művészek",
+    "HeaderFavoriteEpisodes": "Kedvenc Epizódok",
+    "HeaderFavoriteShows": "Kedvenc Műsorok",
+    "HeaderFavoriteSongs": "Kedvenc Dalok",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Következik",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Házi videók",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip cím: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Legújabb",
+    "MessageApplicationUpdated": "Jellyfin Szerver frissítve",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Szerver konfigurációs rész {0} frissítve",
+    "MessageServerConfigurationUpdated": "Szerver konfiguráció frissítve",
+    "MixedContent": "Vegyes tartalom",
+    "Movies": "Filmek",
+    "Music": "Zene",
+    "MusicVideos": "Zenei Videók",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Program frissítés elérhető",
+    "NotificationOptionApplicationUpdateInstalled": "Program frissítés telepítve",
+    "NotificationOptionAudioPlayback": "Audió lejátszás elkezdve",
+    "NotificationOptionAudioPlaybackStopped": "Audió lejátszás befejezve",
+    "NotificationOptionCameraImageUploaded": "Kamera kép feltöltve",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Telepítési hiba",
+    "NotificationOptionNewLibraryContent": "Új tartalom hozzáadva",
+    "NotificationOptionPluginError": "Bővítmény hiba",
+    "NotificationOptionPluginInstalled": "Bővítmény telepítve",
+    "NotificationOptionPluginUninstalled": "Bővítmény eltávolítva",
+    "NotificationOptionPluginUpdateInstalled": "Bővítmény frissítés telepítve",
+    "NotificationOptionServerRestartRequired": "Szerver újraindítás szükséges",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "Felhasználó tiltva",
+    "NotificationOptionVideoPlayback": "Videó lejátszás elkezdve",
+    "NotificationOptionVideoPlaybackStopped": "Videó lejátszás befejezve",
+    "Photos": "Fényképek",
+    "Playlists": "Lejátszási listák",
+    "Plugin": "Bővítmény",
+    "PluginInstalledWithName": "{0} telepítve",
+    "PluginUninstalledWithName": "{0} eltávolítva",
+    "PluginUpdatedWithName": "{0} frissítve",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Műsorok",
+    "Songs": "Dalok",
+    "StartupEmbyServerIsLoading": "Jellyfin Szerver betöltődik. Kérjük, próbáld meg újra később.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Szinkronizál",
+    "System": "Rendszer",
+    "TvShows": "TV Műsorok",
+    "User": "Felhasználó",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} letölti {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} kijelentkezett innen  {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} elkezdte játszani a következőt {1}",
+    "UserStoppedPlayingItemWithValues": "{0} befejezte a következőt {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Verzió {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/it.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Album",
-  "AppDeviceValues": "App: {0}, Dispositivo: {1}",
-  "Application": "Applicazione",
-  "Artists": "Artisti",
-  "AuthenticationSucceededWithUserName": "{0} autenticato con successo",
-  "Books": "Libri",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Canali",
-  "ChapterNameValue": "Capitolo {0}",
-  "Collections": "Collezioni",
-  "DeviceOfflineWithName": "{0} è stato disconnesso",
-  "DeviceOnlineWithName": "{0} è connesso",
-  "FailedLoginAttemptWithUserName": "Tentativo di accesso fallito da  {0}",
-  "Favorites": "Preferiti",
-  "Folders": "Cartelle",
-  "Games": "Giochi",
-  "Genres": "Generi",
-  "HeaderAlbumArtists": "Artisti Album",
-  "HeaderCameraUploads": "Caricamenti Fotocamera",
-  "HeaderContinueWatching": "Continua a guardare",
-  "HeaderFavoriteAlbums": "Album preferiti",
-  "HeaderFavoriteArtists": "Artisti preferiti",
-  "HeaderFavoriteEpisodes": "Episodi Preferiti",
-  "HeaderFavoriteShows": "Show preferiti",
-  "HeaderFavoriteSongs": "Brani Preferiti",
-  "HeaderLiveTV": "Diretta TV",
-  "HeaderNextUp": "Prossimo",
-  "HeaderRecordingGroups": "Gruppi di Registrazione",
-  "HomeVideos": "Video personali",
-  "Inherit": "Eredita",
-  "ItemAddedWithName": "{0} è stato aggiunto alla libreria",
-  "ItemRemovedWithName": "{0} è stato rimosso dalla libreria",
-  "LabelIpAddressValue": "Indirizzo IP: {0}",
-  "LabelRunningTimeValue": "Durata: {0}",
-  "Latest": "Più recenti",
-  "MessageApplicationUpdated": "Il Server Jellyfin è stato aggiornato",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "La sezione {0} della configurazione server è stata aggiornata",
-  "MessageServerConfigurationUpdated": "La configurazione del server è stata aggiornata",
-  "MixedContent": "Contenuto misto",
-  "Movies": "Film",
-  "Music": "Musica",
-  "MusicVideos": "Video musicali",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Stagione {0}",
-  "NameSeasonUnknown": "Stagione sconosciuto",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Aggiornamento dell'applicazione disponibile",
-  "NotificationOptionApplicationUpdateInstalled": "Aggiornamento dell'applicazione installato",
-  "NotificationOptionAudioPlayback": "La riproduzione audio è iniziata",
-  "NotificationOptionAudioPlaybackStopped": "La riproduzione audio è stata interrotta",
-  "NotificationOptionCameraImageUploaded": "Immagine fotocamera caricata",
-  "NotificationOptionGamePlayback": "Il gioco è stato avviato",
-  "NotificationOptionGamePlaybackStopped": "Il gioco è stato fermato",
-  "NotificationOptionInstallationFailed": "Installazione fallita",
-  "NotificationOptionNewLibraryContent": "Nuovo contenuto aggiunto",
-  "NotificationOptionPluginError": "Errore del Plug-in",
-  "NotificationOptionPluginInstalled": "Plug-in installato",
-  "NotificationOptionPluginUninstalled": "Plug-in disinstallato",
-  "NotificationOptionPluginUpdateInstalled": "Aggiornamento del plug-in installato",
-  "NotificationOptionServerRestartRequired": "Riavvio del server necessario",
-  "NotificationOptionTaskFailed": "Operazione pianificata fallita",
-  "NotificationOptionUserLockedOut": "Utente bloccato",
-  "NotificationOptionVideoPlayback": "La riproduzione video è iniziata",
-  "NotificationOptionVideoPlaybackStopped": "La riproduzione video è stata interrotta",
-  "Photos": "Foto",
-  "Playlists": "Playlist",
-  "Plugin": "Plug-in",
-  "PluginInstalledWithName": "{0} è stato Installato",
-  "PluginUninstalledWithName": "{0} è stato disinstallato",
-  "PluginUpdatedWithName": "{0} è stato aggiornato",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} fallito",
-  "ScheduledTaskStartedWithName": "{0} avviati",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Programmi",
-  "Songs": "Canzoni",
-  "StartupEmbyServerIsLoading": "Jellyfin server si sta avviando. Per favore riprova più tardi.",
-  "SubtitleDownloadFailureForItem": "Impossibile scaricare i sottotitoli per {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Sottotitoli scaricati per {0}",
-  "Sync": "Sincronizza",
-  "System": "Sistema",
-  "TvShows": "Serie TV",
-  "User": "Utente",
-  "UserCreatedWithName": "L'utente {0} è stato creato",
-  "UserDeletedWithName": "L'utente {0} è stato rimosso",
-  "UserDownloadingItemWithValues": "{0} sta scaricando {1}",
-  "UserLockedOutWithName": "L'utente {0} è stato bloccato",
-  "UserOfflineFromDevice": "{0} è stato disconnesso da {1}",
-  "UserOnlineFromDevice": "{0} è online da {1}",
-  "UserPasswordChangedWithName": "La password è stata cambiata per l'utente {0}",
-  "UserPolicyUpdatedWithName": "La politica dell'utente è stata aggiornata per {0}",
-  "UserStartedPlayingItemWithValues": "{0} ha avviato la riproduzione di {1}",
-  "UserStoppedPlayingItemWithValues": "{0} ha interrotto la riproduzione di {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Speciale - {0}",
-  "VersionNumber": "Versione {0}"
+    "Albums": "Album",
+    "AppDeviceValues": "App: {0}, Dispositivo: {1}",
+    "Application": "Applicazione",
+    "Artists": "Artisti",
+    "AuthenticationSucceededWithUserName": "{0} autenticato con successo",
+    "Books": "Libri",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Canali",
+    "ChapterNameValue": "Capitolo {0}",
+    "Collections": "Collezioni",
+    "DeviceOfflineWithName": "{0} è stato disconnesso",
+    "DeviceOnlineWithName": "{0} è connesso",
+    "FailedLoginAttemptWithUserName": "Tentativo di accesso fallito da  {0}",
+    "Favorites": "Preferiti",
+    "Folders": "Cartelle",
+    "Games": "Giochi",
+    "Genres": "Generi",
+    "HeaderAlbumArtists": "Artisti Album",
+    "HeaderCameraUploads": "Caricamenti Fotocamera",
+    "HeaderContinueWatching": "Continua a guardare",
+    "HeaderFavoriteAlbums": "Album preferiti",
+    "HeaderFavoriteArtists": "Artisti preferiti",
+    "HeaderFavoriteEpisodes": "Episodi Preferiti",
+    "HeaderFavoriteShows": "Show preferiti",
+    "HeaderFavoriteSongs": "Brani Preferiti",
+    "HeaderLiveTV": "Diretta TV",
+    "HeaderNextUp": "Prossimo",
+    "HeaderRecordingGroups": "Gruppi di Registrazione",
+    "HomeVideos": "Video personali",
+    "Inherit": "Eredita",
+    "ItemAddedWithName": "{0} è stato aggiunto alla libreria",
+    "ItemRemovedWithName": "{0} è stato rimosso dalla libreria",
+    "LabelIpAddressValue": "Indirizzo IP: {0}",
+    "LabelRunningTimeValue": "Durata: {0}",
+    "Latest": "Più recenti",
+    "MessageApplicationUpdated": "Il Server Jellyfin è stato aggiornato",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "La sezione {0} della configurazione server è stata aggiornata",
+    "MessageServerConfigurationUpdated": "La configurazione del server è stata aggiornata",
+    "MixedContent": "Contenuto misto",
+    "Movies": "Film",
+    "Music": "Musica",
+    "MusicVideos": "Video musicali",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Stagione {0}",
+    "NameSeasonUnknown": "Stagione sconosciuto",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Aggiornamento dell'applicazione disponibile",
+    "NotificationOptionApplicationUpdateInstalled": "Aggiornamento dell'applicazione installato",
+    "NotificationOptionAudioPlayback": "La riproduzione audio è iniziata",
+    "NotificationOptionAudioPlaybackStopped": "La riproduzione audio è stata interrotta",
+    "NotificationOptionCameraImageUploaded": "Immagine fotocamera caricata",
+    "NotificationOptionGamePlayback": "Il gioco è stato avviato",
+    "NotificationOptionGamePlaybackStopped": "Il gioco è stato fermato",
+    "NotificationOptionInstallationFailed": "Installazione fallita",
+    "NotificationOptionNewLibraryContent": "Nuovo contenuto aggiunto",
+    "NotificationOptionPluginError": "Errore del Plug-in",
+    "NotificationOptionPluginInstalled": "Plug-in installato",
+    "NotificationOptionPluginUninstalled": "Plug-in disinstallato",
+    "NotificationOptionPluginUpdateInstalled": "Aggiornamento del plug-in installato",
+    "NotificationOptionServerRestartRequired": "Riavvio del server necessario",
+    "NotificationOptionTaskFailed": "Operazione pianificata fallita",
+    "NotificationOptionUserLockedOut": "Utente bloccato",
+    "NotificationOptionVideoPlayback": "La riproduzione video è iniziata",
+    "NotificationOptionVideoPlaybackStopped": "La riproduzione video è stata interrotta",
+    "Photos": "Foto",
+    "Playlists": "Playlist",
+    "Plugin": "Plug-in",
+    "PluginInstalledWithName": "{0} è stato Installato",
+    "PluginUninstalledWithName": "{0} è stato disinstallato",
+    "PluginUpdatedWithName": "{0} è stato aggiornato",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} fallito",
+    "ScheduledTaskStartedWithName": "{0} avviati",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Programmi",
+    "Songs": "Canzoni",
+    "StartupEmbyServerIsLoading": "Jellyfin server si sta avviando. Per favore riprova più tardi.",
+    "SubtitleDownloadFailureForItem": "Impossibile scaricare i sottotitoli per {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Sottotitoli scaricati per {0}",
+    "Sync": "Sincronizza",
+    "System": "Sistema",
+    "TvShows": "Serie TV",
+    "User": "Utente",
+    "UserCreatedWithName": "L'utente {0} è stato creato",
+    "UserDeletedWithName": "L'utente {0} è stato rimosso",
+    "UserDownloadingItemWithValues": "{0} sta scaricando {1}",
+    "UserLockedOutWithName": "L'utente {0} è stato bloccato",
+    "UserOfflineFromDevice": "{0} è stato disconnesso da {1}",
+    "UserOnlineFromDevice": "{0} è online da {1}",
+    "UserPasswordChangedWithName": "La password è stata cambiata per l'utente {0}",
+    "UserPolicyUpdatedWithName": "La politica dell'utente è stata aggiornata per {0}",
+    "UserStartedPlayingItemWithValues": "{0} ha avviato la riproduzione di {1}",
+    "UserStoppedPlayingItemWithValues": "{0} ha interrotto la riproduzione di {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Speciale - {0}",
+    "VersionNumber": "Versione {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/kk.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Альбомдар",
-  "AppDeviceValues": "Қолданба: {0}, Құрылғы: {1}",
-  "Application": "Қолданба",
-  "Artists": "Орындаушылар",
-  "AuthenticationSucceededWithUserName": "{0} түпнұсқалығын расталуы сәтті",
-  "Books": "Кітаптар",
-  "CameraImageUploadedFrom": "Жаңа сурет {0} камерасынан жүктеп алынды",
-  "Channels": "Арналар",
-  "ChapterNameValue": "{0}-сахна",
-  "Collections": "Жиынтықтар",
-  "DeviceOfflineWithName": "{0} ажыратылған",
-  "DeviceOnlineWithName": "{0} қосылған",
-  "FailedLoginAttemptWithUserName": "{0} тарапынан кіру әрекеті сәтсіз",
-  "Favorites": "Таңдаулылар",
-  "Folders": "Қалталар",
-  "Games": "Ойындар",
-  "Genres": "Жанрлар",
-  "HeaderAlbumArtists": "Альбом орындаушылары",
-  "HeaderCameraUploads": "Камерадан жүктелгендер",
-  "HeaderContinueWatching": "Қарауды жалғастыру",
-  "HeaderFavoriteAlbums": "Таңдаулы альбомдар",
-  "HeaderFavoriteArtists": "Таңдаулы орындаушылар",
-  "HeaderFavoriteEpisodes": "Таңдаулы бөлімдер",
-  "HeaderFavoriteShows": "Таңдаулы көрсетімдер",
-  "HeaderFavoriteSongs": "Таңдаулы әуендер",
-  "HeaderLiveTV": "Эфир",
-  "HeaderNextUp": "Кезекті",
-  "HeaderRecordingGroups": "Жазба топтары",
-  "HomeVideos": "Үйлік бейнелер",
-  "Inherit": "Мұраға иелену",
-  "ItemAddedWithName": "{0} тасығышханаға үстелінді",
-  "ItemRemovedWithName": "{0} тасығышханадан аласталды",
-  "LabelIpAddressValue": "IP-мекенжайы: {0}",
-  "LabelRunningTimeValue": "Іске қосылу уақыты: {0}",
-  "Latest": "Ең кейінгі",
-  "MessageApplicationUpdated": "Jellyfin Server жаңартылды.",
-  "MessageApplicationUpdatedTo": "Jellyfin Server {0} үшін жаңартылды",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Сервер теңшелімі ({0} бөлімі) жаңартылды",
-  "MessageServerConfigurationUpdated": "Сервер теңшелімі жаңартылды",
-  "MixedContent": "Аралас мазмұн",
-  "Movies": "Фильмдер",
-  "Music": "Музыка",
-  "MusicVideos": "Музыкалық бейнелер",
-  "NameInstallFailed": "{0} орнатылуы сәтсіз",
-  "NameSeasonNumber": "{0}-маусым",
-  "NameSeasonUnknown": "Белгісіз маусым",
-  "NewVersionIsAvailable": "Жаңа Jellyfin Server нұсқасы жүктеп алуға қолжетімді.",
-  "NotificationOptionApplicationUpdateAvailable": "Қолданба жаңартуы қолжетімді",
-  "NotificationOptionApplicationUpdateInstalled": "Қолданба жаңартуы орнатылды",
-  "NotificationOptionAudioPlayback": "Дыбыс ойнатуы басталды",
-  "NotificationOptionAudioPlaybackStopped": "Дыбыс ойнатуы тоқтатылды",
-  "NotificationOptionCameraImageUploaded": "Камерадан фотосурет кері қотарылған",
-  "NotificationOptionGamePlayback": "Ойын ойнатуы басталды",
-  "NotificationOptionGamePlaybackStopped": "Ойын ойнатуы тоқтатылды",
-  "NotificationOptionInstallationFailed": "Орнату сәтсіздігі",
-  "NotificationOptionNewLibraryContent": "Жаңа мазмұн үстелген",
-  "NotificationOptionPluginError": "Плагин сәтсіздігі",
-  "NotificationOptionPluginInstalled": "Плагин орнатылды",
-  "NotificationOptionPluginUninstalled": "Плагин орнатуы болдырылмады",
-  "NotificationOptionPluginUpdateInstalled": "Плагин жаңартуы орнатылды",
-  "NotificationOptionServerRestartRequired": "Серверді қайта іске қосу қажет",
-  "NotificationOptionTaskFailed": "Жоспарлаған тапсырма сәтсіздігі",
-  "NotificationOptionUserLockedOut": "Пайдаланушы құрсаулы",
-  "NotificationOptionVideoPlayback": "Бейне ойнатуы басталды",
-  "NotificationOptionVideoPlaybackStopped": "Бейне ойнатуы тоқтатылды",
-  "Photos": "Фотосуреттер",
-  "Playlists": "Ойнату тізімдері",
-  "Plugin": "Плагин",
-  "PluginInstalledWithName": "{0} орнатылды",
-  "PluginUninstalledWithName": "{0} жойылды",
-  "PluginUpdatedWithName": "{0} жаңартылды",
-  "ProviderValue": "Жеткізуші: {0}",
-  "ScheduledTaskFailedWithName": "{0} сәтсіз",
-  "ScheduledTaskStartedWithName": "{0} іске қосылды",
-  "ServerNameNeedsToBeRestarted": "{0} қайта іске қосу қажет",
-  "Shows": "Көрсетімдер",
-  "Songs": "Әуендер",
-  "StartupEmbyServerIsLoading": "Jellyfin Server жүктелуде. Әрекетті көп ұзамай қайталаңыз.",
-  "SubtitleDownloadFailureForItem": "Субтитрлер {0} үшін жүктеліп алынуы сәтсіз",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "{0} үшін субтитрлер жүктеліп алынды",
-  "Sync": "Үндестіру",
-  "System": "Жүйе",
-  "TvShows": "ТД-көрсетімдер",
-  "User": "Пайдаланушы",
-  "UserCreatedWithName": "Пайдаланушы {0} жасалған",
-  "UserDeletedWithName": "Пайдаланушы {0} жойылған",
-  "UserDownloadingItemWithValues": "{0} мынаны жүктеп алуда: {1}",
-  "UserLockedOutWithName": "Пайдаланушы {0} құрсаулы",
-  "UserOfflineFromDevice": "{0} - {1} тарапынан ажыратылған",
-  "UserOnlineFromDevice": "{0} - {1} арқылы қосылған",
-  "UserPasswordChangedWithName": "Пайдаланушы {0} үшін құпия сөз өзгертілді",
-  "UserPolicyUpdatedWithName": "Пайдаланушы {0} үшін саясаттары жаңартылды",
-  "UserStartedPlayingItemWithValues": "{0} - {1} ойнатуын  {2} бастады",
-  "UserStoppedPlayingItemWithValues": "{0} - {1} ойнатуын  {2} тоқтатты",
-  "ValueHasBeenAddedToLibrary": "{0} (тасығышханаға үстелінді)",
-  "ValueSpecialEpisodeName": "Арнайы - {0}",
-  "VersionNumber": "Нұсқасы: {0}"
+    "Albums": "Альбомдар",
+    "AppDeviceValues": "Қолданба: {0}, Құрылғы: {1}",
+    "Application": "Қолданба",
+    "Artists": "Орындаушылар",
+    "AuthenticationSucceededWithUserName": "{0} түпнұсқалығын расталуы сәтті",
+    "Books": "Кітаптар",
+    "CameraImageUploadedFrom": "Жаңа сурет {0} камерасынан жүктеп алынды",
+    "Channels": "Арналар",
+    "ChapterNameValue": "{0}-сахна",
+    "Collections": "Жиынтықтар",
+    "DeviceOfflineWithName": "{0} ажыратылған",
+    "DeviceOnlineWithName": "{0} қосылған",
+    "FailedLoginAttemptWithUserName": "{0} тарапынан кіру әрекеті сәтсіз",
+    "Favorites": "Таңдаулылар",
+    "Folders": "Қалталар",
+    "Games": "Ойындар",
+    "Genres": "Жанрлар",
+    "HeaderAlbumArtists": "Альбом орындаушылары",
+    "HeaderCameraUploads": "Камерадан жүктелгендер",
+    "HeaderContinueWatching": "Қарауды жалғастыру",
+    "HeaderFavoriteAlbums": "Таңдаулы альбомдар",
+    "HeaderFavoriteArtists": "Таңдаулы орындаушылар",
+    "HeaderFavoriteEpisodes": "Таңдаулы бөлімдер",
+    "HeaderFavoriteShows": "Таңдаулы көрсетімдер",
+    "HeaderFavoriteSongs": "Таңдаулы әуендер",
+    "HeaderLiveTV": "Эфир",
+    "HeaderNextUp": "Кезекті",
+    "HeaderRecordingGroups": "Жазба топтары",
+    "HomeVideos": "Үйлік бейнелер",
+    "Inherit": "Мұраға иелену",
+    "ItemAddedWithName": "{0} тасығышханаға үстелінді",
+    "ItemRemovedWithName": "{0} тасығышханадан аласталды",
+    "LabelIpAddressValue": "IP-мекенжайы: {0}",
+    "LabelRunningTimeValue": "Іске қосылу уақыты: {0}",
+    "Latest": "Ең кейінгі",
+    "MessageApplicationUpdated": "Jellyfin Server жаңартылды.",
+    "MessageApplicationUpdatedTo": "Jellyfin Server {0} үшін жаңартылды",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Сервер теңшелімі ({0} бөлімі) жаңартылды",
+    "MessageServerConfigurationUpdated": "Сервер теңшелімі жаңартылды",
+    "MixedContent": "Аралас мазмұн",
+    "Movies": "Фильмдер",
+    "Music": "Музыка",
+    "MusicVideos": "Музыкалық бейнелер",
+    "NameInstallFailed": "{0} орнатылуы сәтсіз",
+    "NameSeasonNumber": "{0}-маусым",
+    "NameSeasonUnknown": "Белгісіз маусым",
+    "NewVersionIsAvailable": "Жаңа Jellyfin Server нұсқасы жүктеп алуға қолжетімді.",
+    "NotificationOptionApplicationUpdateAvailable": "Қолданба жаңартуы қолжетімді",
+    "NotificationOptionApplicationUpdateInstalled": "Қолданба жаңартуы орнатылды",
+    "NotificationOptionAudioPlayback": "Дыбыс ойнатуы басталды",
+    "NotificationOptionAudioPlaybackStopped": "Дыбыс ойнатуы тоқтатылды",
+    "NotificationOptionCameraImageUploaded": "Камерадан фотосурет кері қотарылған",
+    "NotificationOptionGamePlayback": "Ойын ойнатуы басталды",
+    "NotificationOptionGamePlaybackStopped": "Ойын ойнатуы тоқтатылды",
+    "NotificationOptionInstallationFailed": "Орнату сәтсіздігі",
+    "NotificationOptionNewLibraryContent": "Жаңа мазмұн үстелген",
+    "NotificationOptionPluginError": "Плагин сәтсіздігі",
+    "NotificationOptionPluginInstalled": "Плагин орнатылды",
+    "NotificationOptionPluginUninstalled": "Плагин орнатуы болдырылмады",
+    "NotificationOptionPluginUpdateInstalled": "Плагин жаңартуы орнатылды",
+    "NotificationOptionServerRestartRequired": "Серверді қайта іске қосу қажет",
+    "NotificationOptionTaskFailed": "Жоспарлаған тапсырма сәтсіздігі",
+    "NotificationOptionUserLockedOut": "Пайдаланушы құрсаулы",
+    "NotificationOptionVideoPlayback": "Бейне ойнатуы басталды",
+    "NotificationOptionVideoPlaybackStopped": "Бейне ойнатуы тоқтатылды",
+    "Photos": "Фотосуреттер",
+    "Playlists": "Ойнату тізімдері",
+    "Plugin": "Плагин",
+    "PluginInstalledWithName": "{0} орнатылды",
+    "PluginUninstalledWithName": "{0} жойылды",
+    "PluginUpdatedWithName": "{0} жаңартылды",
+    "ProviderValue": "Жеткізуші: {0}",
+    "ScheduledTaskFailedWithName": "{0} сәтсіз",
+    "ScheduledTaskStartedWithName": "{0} іске қосылды",
+    "ServerNameNeedsToBeRestarted": "{0} қайта іске қосу қажет",
+    "Shows": "Көрсетімдер",
+    "Songs": "Әуендер",
+    "StartupEmbyServerIsLoading": "Jellyfin Server жүктелуде. Әрекетті көп ұзамай қайталаңыз.",
+    "SubtitleDownloadFailureForItem": "Субтитрлер {0} үшін жүктеліп алынуы сәтсіз",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "{0} үшін субтитрлер жүктеліп алынды",
+    "Sync": "Үндестіру",
+    "System": "Жүйе",
+    "TvShows": "ТД-көрсетімдер",
+    "User": "Пайдаланушы",
+    "UserCreatedWithName": "Пайдаланушы {0} жасалған",
+    "UserDeletedWithName": "Пайдаланушы {0} жойылған",
+    "UserDownloadingItemWithValues": "{0} мынаны жүктеп алуда: {1}",
+    "UserLockedOutWithName": "Пайдаланушы {0} құрсаулы",
+    "UserOfflineFromDevice": "{0} - {1} тарапынан ажыратылған",
+    "UserOnlineFromDevice": "{0} - {1} арқылы қосылған",
+    "UserPasswordChangedWithName": "Пайдаланушы {0} үшін құпия сөз өзгертілді",
+    "UserPolicyUpdatedWithName": "Пайдаланушы {0} үшін саясаттары жаңартылды",
+    "UserStartedPlayingItemWithValues": "{0} - {1} ойнатуын  {2} бастады",
+    "UserStoppedPlayingItemWithValues": "{0} - {1} ойнатуын  {2} тоқтатты",
+    "ValueHasBeenAddedToLibrary": "{0} (тасығышханаға үстелінді)",
+    "ValueSpecialEpisodeName": "Арнайы - {0}",
+    "VersionNumber": "Нұсқасы: {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/ko.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "앨범 아티스트",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "계속 시청하기",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "즐겨찾는 쇼",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin 서버를 불러오고 있습니다. 잠시후 다시시도 해주세요.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "앨범 아티스트",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "계속 시청하기",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "즐겨찾는 쇼",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin 서버를 불러오고 있습니다. 잠시후 다시시도 해주세요.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/lt-LT.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Žanrai",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Žiūrėti toliau",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Filmai",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sinchronizuoti",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Ypatinga - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Žanrai",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Žiūrėti toliau",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Filmai",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sinchronizuoti",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Ypatinga - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/ms.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/nb.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Album",
-  "AppDeviceValues": "App:{0}, Enhet {1}",
-  "Application": "Applikasjon",
-  "Artists": "Artister",
-  "AuthenticationSucceededWithUserName": "{0} vellykkede autentisert",
-  "Books": "Bøker",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanaler",
-  "ChapterNameValue": "Kapittel {0}",
-  "Collections": "Samlinger",
-  "DeviceOfflineWithName": "{0} har koblet fra",
-  "DeviceOnlineWithName": "{0} er tilkoblet",
-  "FailedLoginAttemptWithUserName": "Mislykket påloggingsforsøk fra {0}",
-  "Favorites": "Favoritter",
-  "Folders": "Mapper",
-  "Games": "Spill",
-  "Genres": "Sjanger",
-  "HeaderAlbumArtists": "Albumartist",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Forsett og see på",
-  "HeaderFavoriteAlbums": "Favoritt albumer",
-  "HeaderFavoriteArtists": "Favorittartister",
-  "HeaderFavoriteEpisodes": "Favoritt episode",
-  "HeaderFavoriteShows": "Favorittserier",
-  "HeaderFavoriteSongs": "Favorittsanger",
-  "HeaderLiveTV": "Direkte TV",
-  "HeaderNextUp": "Neste",
-  "HeaderRecordingGroups": "Opptak Grupper",
-  "HomeVideos": "Hjemmelaget filmer",
-  "Inherit": "Arve",
-  "ItemAddedWithName": "{0} ble lagt til i biblioteket",
-  "ItemRemovedWithName": "{0} ble fjernet fra biblioteket",
-  "LabelIpAddressValue": "IP adresse: {0}",
-  "LabelRunningTimeValue": "Løpetid {0}",
-  "Latest": "Siste",
-  "MessageApplicationUpdated": "Jellyfin server har blitt oppdatert",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server konfigurasjon seksjon {0} har blitt oppdatert",
-  "MessageServerConfigurationUpdated": "Server konfigurasjon er oppdatert",
-  "MixedContent": "Blandet innhold",
-  "Movies": "Filmer",
-  "Music": "Musikk",
-  "MusicVideos": "Musikkvideoer",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Sesong {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Applikasjon oppdatering tilgjengelig",
-  "NotificationOptionApplicationUpdateInstalled": "Applikasjon oppdatering installert.",
-  "NotificationOptionAudioPlayback": "Lyd tilbakespilling startet",
-  "NotificationOptionAudioPlaybackStopped": "Lyd avspilling stoppet",
-  "NotificationOptionCameraImageUploaded": "Kamera bilde lastet opp",
-  "NotificationOptionGamePlayback": "Spill avspillingen startet",
-  "NotificationOptionGamePlaybackStopped": "Filmer",
-  "NotificationOptionInstallationFailed": "Installasjon feil",
-  "NotificationOptionNewLibraryContent": "Ny innhold er lagt til",
-  "NotificationOptionPluginError": "Plugin feil",
-  "NotificationOptionPluginInstalled": "Plugin installert",
-  "NotificationOptionPluginUninstalled": "Plugin avinstallert",
-  "NotificationOptionPluginUpdateInstalled": "Plugin oppdatering installert",
-  "NotificationOptionServerRestartRequired": "Server omstart er nødvendig",
-  "NotificationOptionTaskFailed": "Feil under utføring av planlagt oppgaver",
-  "NotificationOptionUserLockedOut": "Bruker er utestengt",
-  "NotificationOptionVideoPlayback": "Video tilbakespilling startet",
-  "NotificationOptionVideoPlaybackStopped": "Video avspilling stoppet",
-  "Photos": "BIlder",
-  "Playlists": "Spilleliste",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} ble installert",
-  "PluginUninstalledWithName": "{0} ble avinstallert",
-  "PluginUpdatedWithName": "{0} ble oppdatert",
-  "ProviderValue": "Leverandører: {0}",
-  "ScheduledTaskFailedWithName": "{0} Mislykkes",
-  "ScheduledTaskStartedWithName": "{0} Startet",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Programmer",
-  "Songs": "Sanger",
-  "StartupEmbyServerIsLoading": "Jellyfin server laster. Prøv igjen snart.",
-  "SubtitleDownloadFailureForItem": "En feil oppstå under nedlasting av undertekster for  {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Undertekster lastet ned for {0}",
-  "Sync": "Synk",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "Bruker",
-  "UserCreatedWithName": "Bruker {0} er opprettet",
-  "UserDeletedWithName": "Bruker {0} har blitt slettet",
-  "UserDownloadingItemWithValues": "{0} laster ned {1}",
-  "UserLockedOutWithName": "Bruker {0} er blitt utestengt",
-  "UserOfflineFromDevice": "{0} har koblet fra {1}",
-  "UserOnlineFromDevice": "{0} er tilkoblet fra {1}",
-  "UserPasswordChangedWithName": "Passordet for {0} er oppdatert",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} har startet avspilling {1}",
-  "UserStoppedPlayingItemWithValues": "{0} har stoppet avspilling  {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Spesial - {0}",
-  "VersionNumber": "Versjon {0}"
+    "Albums": "Album",
+    "AppDeviceValues": "App:{0}, Enhet {1}",
+    "Application": "Applikasjon",
+    "Artists": "Artister",
+    "AuthenticationSucceededWithUserName": "{0} vellykkede autentisert",
+    "Books": "Bøker",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanaler",
+    "ChapterNameValue": "Kapittel {0}",
+    "Collections": "Samlinger",
+    "DeviceOfflineWithName": "{0} har koblet fra",
+    "DeviceOnlineWithName": "{0} er tilkoblet",
+    "FailedLoginAttemptWithUserName": "Mislykket påloggingsforsøk fra {0}",
+    "Favorites": "Favoritter",
+    "Folders": "Mapper",
+    "Games": "Spill",
+    "Genres": "Sjanger",
+    "HeaderAlbumArtists": "Albumartist",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Forsett og see på",
+    "HeaderFavoriteAlbums": "Favoritt albumer",
+    "HeaderFavoriteArtists": "Favorittartister",
+    "HeaderFavoriteEpisodes": "Favoritt episode",
+    "HeaderFavoriteShows": "Favorittserier",
+    "HeaderFavoriteSongs": "Favorittsanger",
+    "HeaderLiveTV": "Direkte TV",
+    "HeaderNextUp": "Neste",
+    "HeaderRecordingGroups": "Opptak Grupper",
+    "HomeVideos": "Hjemmelaget filmer",
+    "Inherit": "Arve",
+    "ItemAddedWithName": "{0} ble lagt til i biblioteket",
+    "ItemRemovedWithName": "{0} ble fjernet fra biblioteket",
+    "LabelIpAddressValue": "IP adresse: {0}",
+    "LabelRunningTimeValue": "Løpetid {0}",
+    "Latest": "Siste",
+    "MessageApplicationUpdated": "Jellyfin server har blitt oppdatert",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server konfigurasjon seksjon {0} har blitt oppdatert",
+    "MessageServerConfigurationUpdated": "Server konfigurasjon er oppdatert",
+    "MixedContent": "Blandet innhold",
+    "Movies": "Filmer",
+    "Music": "Musikk",
+    "MusicVideos": "Musikkvideoer",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Sesong {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Applikasjon oppdatering tilgjengelig",
+    "NotificationOptionApplicationUpdateInstalled": "Applikasjon oppdatering installert.",
+    "NotificationOptionAudioPlayback": "Lyd tilbakespilling startet",
+    "NotificationOptionAudioPlaybackStopped": "Lyd avspilling stoppet",
+    "NotificationOptionCameraImageUploaded": "Kamera bilde lastet opp",
+    "NotificationOptionGamePlayback": "Spill avspillingen startet",
+    "NotificationOptionGamePlaybackStopped": "Filmer",
+    "NotificationOptionInstallationFailed": "Installasjon feil",
+    "NotificationOptionNewLibraryContent": "Ny innhold er lagt til",
+    "NotificationOptionPluginError": "Plugin feil",
+    "NotificationOptionPluginInstalled": "Plugin installert",
+    "NotificationOptionPluginUninstalled": "Plugin avinstallert",
+    "NotificationOptionPluginUpdateInstalled": "Plugin oppdatering installert",
+    "NotificationOptionServerRestartRequired": "Server omstart er nødvendig",
+    "NotificationOptionTaskFailed": "Feil under utføring av planlagt oppgaver",
+    "NotificationOptionUserLockedOut": "Bruker er utestengt",
+    "NotificationOptionVideoPlayback": "Video tilbakespilling startet",
+    "NotificationOptionVideoPlaybackStopped": "Video avspilling stoppet",
+    "Photos": "BIlder",
+    "Playlists": "Spilleliste",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} ble installert",
+    "PluginUninstalledWithName": "{0} ble avinstallert",
+    "PluginUpdatedWithName": "{0} ble oppdatert",
+    "ProviderValue": "Leverandører: {0}",
+    "ScheduledTaskFailedWithName": "{0} Mislykkes",
+    "ScheduledTaskStartedWithName": "{0} Startet",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Programmer",
+    "Songs": "Sanger",
+    "StartupEmbyServerIsLoading": "Jellyfin server laster. Prøv igjen snart.",
+    "SubtitleDownloadFailureForItem": "En feil oppstå under nedlasting av undertekster for  {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Undertekster lastet ned for {0}",
+    "Sync": "Synk",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "Bruker",
+    "UserCreatedWithName": "Bruker {0} er opprettet",
+    "UserDeletedWithName": "Bruker {0} har blitt slettet",
+    "UserDownloadingItemWithValues": "{0} laster ned {1}",
+    "UserLockedOutWithName": "Bruker {0} er blitt utestengt",
+    "UserOfflineFromDevice": "{0} har koblet fra {1}",
+    "UserOnlineFromDevice": "{0} er tilkoblet fra {1}",
+    "UserPasswordChangedWithName": "Passordet for {0} er oppdatert",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} har startet avspilling {1}",
+    "UserStoppedPlayingItemWithValues": "{0} har stoppet avspilling  {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Spesial - {0}",
+    "VersionNumber": "Versjon {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/nl.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Apparaat: {1}",
-  "Application": "Toepassing",
-  "Artists": "Artiesten",
-  "AuthenticationSucceededWithUserName": "{0} is succesvol geverifieerd",
-  "Books": "Boeken",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanalen",
-  "ChapterNameValue": "Hoofdstuk {0}",
-  "Collections": "Collecties",
-  "DeviceOfflineWithName": "{0} is losgekoppeld",
-  "DeviceOnlineWithName": "{0} is verbonden",
-  "FailedLoginAttemptWithUserName": "Mislukte aanmeld poging van {0}",
-  "Favorites": "Favorieten",
-  "Folders": "Mappen",
-  "Games": "Spellen",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album artiesten",
-  "HeaderCameraUploads": "Camera uploads",
-  "HeaderContinueWatching": "Kijken hervatten",
-  "HeaderFavoriteAlbums": "Favoriete albums",
-  "HeaderFavoriteArtists": "Favoriete artiesten",
-  "HeaderFavoriteEpisodes": "Favoriete afleveringen",
-  "HeaderFavoriteShows": "Favoriete shows",
-  "HeaderFavoriteSongs": "Favoriete titels",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Volgende",
-  "HeaderRecordingGroups": "Opnamegroepen",
-  "HomeVideos": "Thuis video's",
-  "Inherit": "Overerven",
-  "ItemAddedWithName": "{0} is toegevoegd aan de bibliotheek",
-  "ItemRemovedWithName": "{0} is verwijderd uit de bibliotheek",
-  "LabelIpAddressValue": "IP adres: {0}",
-  "LabelRunningTimeValue": "Looptijd: {0}",
-  "Latest": "Nieuwste",
-  "MessageApplicationUpdated": "Jellyfin Server is bijgewerkt",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Sectie {0} van de server configuratie is bijgewerkt",
-  "MessageServerConfigurationUpdated": "Server configuratie is bijgewerkt",
-  "MixedContent": "Gemengde inhoud",
-  "Movies": "Films",
-  "Music": "Muziek",
-  "MusicVideos": "Muziekvideo's",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Seizoen {0}",
-  "NameSeasonUnknown": "Seizoen onbekend",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Programma-update beschikbaar",
-  "NotificationOptionApplicationUpdateInstalled": "Programma-update geïnstalleerd",
-  "NotificationOptionAudioPlayback": "Geluid gestart",
-  "NotificationOptionAudioPlaybackStopped": "Geluid gestopt",
-  "NotificationOptionCameraImageUploaded": "Camera afbeelding geüpload",
-  "NotificationOptionGamePlayback": "Spel gestart",
-  "NotificationOptionGamePlaybackStopped": "Spel gestopt",
-  "NotificationOptionInstallationFailed": "Installatie mislukt",
-  "NotificationOptionNewLibraryContent": "Nieuwe content toegevoegd",
-  "NotificationOptionPluginError": "Plug-in fout",
-  "NotificationOptionPluginInstalled": "Plug-in geïnstalleerd",
-  "NotificationOptionPluginUninstalled": "Plug-in verwijderd",
-  "NotificationOptionPluginUpdateInstalled": "Plug-in-update geïnstalleerd",
-  "NotificationOptionServerRestartRequired": "Server herstart nodig",
-  "NotificationOptionTaskFailed": "Geplande taak mislukt",
-  "NotificationOptionUserLockedOut": "Gebruikersaccount vergrendeld",
-  "NotificationOptionVideoPlayback": "Video gestart",
-  "NotificationOptionVideoPlaybackStopped": "Video gestopt",
-  "Photos": "Foto's",
-  "Playlists": "Afspeellijsten",
-  "Plugin": "Plug-in",
-  "PluginInstalledWithName": "{0} is geïnstalleerd",
-  "PluginUninstalledWithName": "{0} is verwijderd",
-  "PluginUpdatedWithName": "{0} is bijgewerkt",
-  "ProviderValue": "Aanbieder: {0}",
-  "ScheduledTaskFailedWithName": "{0} is mislukt",
-  "ScheduledTaskStartedWithName": "{0} is gestart",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Titels",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is aan het laden, probeer het later opnieuw.",
-  "SubtitleDownloadFailureForItem": "Downloaden van ondertiteling voor {0} is mislukt",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Ondertiteling voor {0} is gedownload",
-  "Sync": "Synchronisatie",
-  "System": "Systeem",
-  "TvShows": "TV-series",
-  "User": "Gebruiker",
-  "UserCreatedWithName": "Gebruiker {0} is aangemaakt",
-  "UserDeletedWithName": "Gebruiker {0} is verwijderd",
-  "UserDownloadingItemWithValues": "{0} download {1}",
-  "UserLockedOutWithName": "Gebruikersaccount {0} is vergrendeld",
-  "UserOfflineFromDevice": "Verbinding van {0} met {1} is verbroken",
-  "UserOnlineFromDevice": "{0} heeft verbinding met {1}",
-  "UserPasswordChangedWithName": "Wachtwoord voor {0} is gewijzigd",
-  "UserPolicyUpdatedWithName": "Gebruikersbeleid gewijzigd voor {0}",
-  "UserStartedPlayingItemWithValues": "{0} heeft afspelen van {1} gestart",
-  "UserStoppedPlayingItemWithValues": "{0} heeft afspelen van {1} gestopt",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Speciaal - {0}",
-  "VersionNumber": "Versie {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Apparaat: {1}",
+    "Application": "Toepassing",
+    "Artists": "Artiesten",
+    "AuthenticationSucceededWithUserName": "{0} is succesvol geverifieerd",
+    "Books": "Boeken",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanalen",
+    "ChapterNameValue": "Hoofdstuk {0}",
+    "Collections": "Collecties",
+    "DeviceOfflineWithName": "{0} is losgekoppeld",
+    "DeviceOnlineWithName": "{0} is verbonden",
+    "FailedLoginAttemptWithUserName": "Mislukte aanmeld poging van {0}",
+    "Favorites": "Favorieten",
+    "Folders": "Mappen",
+    "Games": "Spellen",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album artiesten",
+    "HeaderCameraUploads": "Camera uploads",
+    "HeaderContinueWatching": "Kijken hervatten",
+    "HeaderFavoriteAlbums": "Favoriete albums",
+    "HeaderFavoriteArtists": "Favoriete artiesten",
+    "HeaderFavoriteEpisodes": "Favoriete afleveringen",
+    "HeaderFavoriteShows": "Favoriete shows",
+    "HeaderFavoriteSongs": "Favoriete titels",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Volgende",
+    "HeaderRecordingGroups": "Opnamegroepen",
+    "HomeVideos": "Thuis video's",
+    "Inherit": "Overerven",
+    "ItemAddedWithName": "{0} is toegevoegd aan de bibliotheek",
+    "ItemRemovedWithName": "{0} is verwijderd uit de bibliotheek",
+    "LabelIpAddressValue": "IP adres: {0}",
+    "LabelRunningTimeValue": "Looptijd: {0}",
+    "Latest": "Nieuwste",
+    "MessageApplicationUpdated": "Jellyfin Server is bijgewerkt",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Sectie {0} van de server configuratie is bijgewerkt",
+    "MessageServerConfigurationUpdated": "Server configuratie is bijgewerkt",
+    "MixedContent": "Gemengde inhoud",
+    "Movies": "Films",
+    "Music": "Muziek",
+    "MusicVideos": "Muziekvideo's",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Seizoen {0}",
+    "NameSeasonUnknown": "Seizoen onbekend",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Programma-update beschikbaar",
+    "NotificationOptionApplicationUpdateInstalled": "Programma-update geïnstalleerd",
+    "NotificationOptionAudioPlayback": "Geluid gestart",
+    "NotificationOptionAudioPlaybackStopped": "Geluid gestopt",
+    "NotificationOptionCameraImageUploaded": "Camera afbeelding geüpload",
+    "NotificationOptionGamePlayback": "Spel gestart",
+    "NotificationOptionGamePlaybackStopped": "Spel gestopt",
+    "NotificationOptionInstallationFailed": "Installatie mislukt",
+    "NotificationOptionNewLibraryContent": "Nieuwe content toegevoegd",
+    "NotificationOptionPluginError": "Plug-in fout",
+    "NotificationOptionPluginInstalled": "Plug-in geïnstalleerd",
+    "NotificationOptionPluginUninstalled": "Plug-in verwijderd",
+    "NotificationOptionPluginUpdateInstalled": "Plug-in-update geïnstalleerd",
+    "NotificationOptionServerRestartRequired": "Server herstart nodig",
+    "NotificationOptionTaskFailed": "Geplande taak mislukt",
+    "NotificationOptionUserLockedOut": "Gebruikersaccount vergrendeld",
+    "NotificationOptionVideoPlayback": "Video gestart",
+    "NotificationOptionVideoPlaybackStopped": "Video gestopt",
+    "Photos": "Foto's",
+    "Playlists": "Afspeellijsten",
+    "Plugin": "Plug-in",
+    "PluginInstalledWithName": "{0} is geïnstalleerd",
+    "PluginUninstalledWithName": "{0} is verwijderd",
+    "PluginUpdatedWithName": "{0} is bijgewerkt",
+    "ProviderValue": "Aanbieder: {0}",
+    "ScheduledTaskFailedWithName": "{0} is mislukt",
+    "ScheduledTaskStartedWithName": "{0} is gestart",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Titels",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is aan het laden, probeer het later opnieuw.",
+    "SubtitleDownloadFailureForItem": "Downloaden van ondertiteling voor {0} is mislukt",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Ondertiteling voor {0} is gedownload",
+    "Sync": "Synchronisatie",
+    "System": "Systeem",
+    "TvShows": "TV-series",
+    "User": "Gebruiker",
+    "UserCreatedWithName": "Gebruiker {0} is aangemaakt",
+    "UserDeletedWithName": "Gebruiker {0} is verwijderd",
+    "UserDownloadingItemWithValues": "{0} download {1}",
+    "UserLockedOutWithName": "Gebruikersaccount {0} is vergrendeld",
+    "UserOfflineFromDevice": "Verbinding van {0} met {1} is verbroken",
+    "UserOnlineFromDevice": "{0} heeft verbinding met {1}",
+    "UserPasswordChangedWithName": "Wachtwoord voor {0} is gewijzigd",
+    "UserPolicyUpdatedWithName": "Gebruikersbeleid gewijzigd voor {0}",
+    "UserStartedPlayingItemWithValues": "{0} heeft afspelen van {1} gestart",
+    "UserStoppedPlayingItemWithValues": "{0} heeft afspelen van {1} gestopt",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Speciaal - {0}",
+    "VersionNumber": "Versie {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/pl.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albumy",
-  "AppDeviceValues": "Aplikacja: {0}, Urządzenie: {1}",
-  "Application": "Aplikacja",
-  "Artists": "Wykonawcy",
-  "AuthenticationSucceededWithUserName": "{0} został pomyślnie uwierzytelniony",
-  "Books": "Książki",
-  "CameraImageUploadedFrom": "Nowy obraz został przekazany z {0}",
-  "Channels": "Kanały",
-  "ChapterNameValue": "Rozdział {0}",
-  "Collections": "Kolekcje",
-  "DeviceOfflineWithName": "{0} został rozłączony",
-  "DeviceOnlineWithName": "{0} połączył się",
-  "FailedLoginAttemptWithUserName": "Próba logowania przez {0} zakończona niepowodzeniem",
-  "Favorites": "Ulubione",
-  "Folders": "Foldery",
-  "Games": "Gry",
-  "Genres": "Gatunki",
-  "HeaderAlbumArtists": "Wykonawcy albumów",
-  "HeaderCameraUploads": "Przekazane obrazy",
-  "HeaderContinueWatching": "Kontynuuj odtwarzanie",
-  "HeaderFavoriteAlbums": "Albumy ulubione",
-  "HeaderFavoriteArtists": "Wykonawcy ulubieni",
-  "HeaderFavoriteEpisodes": "Odcinki ulubione",
-  "HeaderFavoriteShows": "Seriale ulubione",
-  "HeaderFavoriteSongs": "Utwory ulubione",
-  "HeaderLiveTV": "Telewizja",
-  "HeaderNextUp": "Do obejrzenia",
-  "HeaderRecordingGroups": "Grupy nagrań",
-  "HomeVideos": "Nagrania prywatne",
-  "Inherit": "Dziedzicz",
-  "ItemAddedWithName": "{0} zostało dodane do biblioteki",
-  "ItemRemovedWithName": "{0} zostało usunięte z biblioteki",
-  "LabelIpAddressValue": "Adres IP: {0}",
-  "LabelRunningTimeValue": "Czas trwania: {0}",
-  "Latest": "Ostatnio dodane",
-  "MessageApplicationUpdated": "Serwer Jellyfin został zaktualizowany",
-  "MessageApplicationUpdatedTo": "Serwer Jellyfin został zaktualizowany do wersji {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Sekcja {0} konfiguracji serwera została zaktualizowana",
-  "MessageServerConfigurationUpdated": "Konfiguracja serwera została zaktualizowana",
-  "MixedContent": "Zawartość mieszana",
-  "Movies": "Filmy",
-  "Music": "Muzyka",
-  "MusicVideos": "Teledyski",
-  "NameInstallFailed": "Instalacja {0} nieudana.",
-  "NameSeasonNumber": "Sezon {0}",
-  "NameSeasonUnknown": "Sezon nieznany",
-  "NewVersionIsAvailable": "Nowa wersja serwera Jellyfin jest dostępna do pobrania.",
-  "NotificationOptionApplicationUpdateAvailable": "Dostępna aktualizacja aplikacji",
-  "NotificationOptionApplicationUpdateInstalled": "Zainstalowano aktualizację aplikacji",
-  "NotificationOptionAudioPlayback": "Rozpoczęto odtwarzanie muzyki",
-  "NotificationOptionAudioPlaybackStopped": "Odtwarzane dźwięku zatrzymane",
-  "NotificationOptionCameraImageUploaded": "Przekazano obraz z urządzenia mobilnego",
-  "NotificationOptionGamePlayback": "Odtwarzanie gry rozpoczęte",
-  "NotificationOptionGamePlaybackStopped": "Odtwarzanie gry zatrzymane",
-  "NotificationOptionInstallationFailed": "Niepowodzenie instalacji",
-  "NotificationOptionNewLibraryContent": "Dodano nową zawartość",
-  "NotificationOptionPluginError": "Awaria wtyczki",
-  "NotificationOptionPluginInstalled": "Zainstalowano wtyczkę",
-  "NotificationOptionPluginUninstalled": "Odinstalowano wtyczkę",
-  "NotificationOptionPluginUpdateInstalled": "Zainstalowano aktualizację wtyczki",
-  "NotificationOptionServerRestartRequired": "Wymagane ponowne uruchomienie serwera",
-  "NotificationOptionTaskFailed": "Awaria zaplanowanego zadania",
-  "NotificationOptionUserLockedOut": "Użytkownik zablokowany",
-  "NotificationOptionVideoPlayback": "Rozpoczęto odtwarzanie wideo",
-  "NotificationOptionVideoPlaybackStopped": "Odtwarzanie wideo zatrzymane",
-  "Photos": "Zdjęcia",
-  "Playlists": "Listy odtwarzania",
-  "Plugin": "Wtyczka",
-  "PluginInstalledWithName": "{0} zostało zainstalowane",
-  "PluginUninstalledWithName": "{0} odinstalowane",
-  "PluginUpdatedWithName": "{0} zaktualizowane",
-  "ProviderValue": "Dostawca: {0}",
-  "ScheduledTaskFailedWithName": "Nieudane {0}",
-  "ScheduledTaskStartedWithName": "Rozpoczęto {0}",
-  "ServerNameNeedsToBeRestarted": "{0} wymaga ponownego uruchomienia",
-  "Shows": "Seriale",
-  "Songs": "Utwory",
-  "StartupEmbyServerIsLoading": "Twa wczytywanie serwera Jellyfin. Spróbuj ponownie za chwilę.",
-  "SubtitleDownloadFailureForItem": "Pobieranie napisów dla {0} zakończone niepowodzeniem",
-  "SubtitleDownloadFailureFromForItem": "Nieudane pobieranie napisów z {0} dla {1}",
-  "SubtitlesDownloadedForItem": "Pobrano napisy dla {0}",
-  "Sync": "Synchronizacja",
-  "System": "System",
-  "TvShows": "Seriale",
-  "User": "Użytkownik",
-  "UserCreatedWithName": "Użytkownik {0} został utworzony",
-  "UserDeletedWithName": "Użytkownik {0} został usunięty",
-  "UserDownloadingItemWithValues": "{0} pobiera {1}",
-  "UserLockedOutWithName": "Użytkownik {0} został zablokowany",
-  "UserOfflineFromDevice": "{0} z {1} został rozłączony",
-  "UserOnlineFromDevice": "{0} połączył się z {1}",
-  "UserPasswordChangedWithName": "Hasło użytkownika {0} zostało zmienione",
-  "UserPolicyUpdatedWithName": "Zmieniono zasady użytkowania dla {0}",
-  "UserStartedPlayingItemWithValues": "{0} odtwarza {1} na {2}",
-  "UserStoppedPlayingItemWithValues": "{0} zakończył odtwarzanie {1} na {2}",
-  "ValueHasBeenAddedToLibrary": "{0} został dodany to biblioteki mediów",
-  "ValueSpecialEpisodeName": "Specjalne - {0}",
-  "VersionNumber": "Wersja {0}"
+    "Albums": "Albumy",
+    "AppDeviceValues": "Aplikacja: {0}, Urządzenie: {1}",
+    "Application": "Aplikacja",
+    "Artists": "Wykonawcy",
+    "AuthenticationSucceededWithUserName": "{0} został pomyślnie uwierzytelniony",
+    "Books": "Książki",
+    "CameraImageUploadedFrom": "Nowy obraz został przekazany z {0}",
+    "Channels": "Kanały",
+    "ChapterNameValue": "Rozdział {0}",
+    "Collections": "Kolekcje",
+    "DeviceOfflineWithName": "{0} został rozłączony",
+    "DeviceOnlineWithName": "{0} połączył się",
+    "FailedLoginAttemptWithUserName": "Próba logowania przez {0} zakończona niepowodzeniem",
+    "Favorites": "Ulubione",
+    "Folders": "Foldery",
+    "Games": "Gry",
+    "Genres": "Gatunki",
+    "HeaderAlbumArtists": "Wykonawcy albumów",
+    "HeaderCameraUploads": "Przekazane obrazy",
+    "HeaderContinueWatching": "Kontynuuj odtwarzanie",
+    "HeaderFavoriteAlbums": "Albumy ulubione",
+    "HeaderFavoriteArtists": "Wykonawcy ulubieni",
+    "HeaderFavoriteEpisodes": "Odcinki ulubione",
+    "HeaderFavoriteShows": "Seriale ulubione",
+    "HeaderFavoriteSongs": "Utwory ulubione",
+    "HeaderLiveTV": "Telewizja",
+    "HeaderNextUp": "Do obejrzenia",
+    "HeaderRecordingGroups": "Grupy nagrań",
+    "HomeVideos": "Nagrania prywatne",
+    "Inherit": "Dziedzicz",
+    "ItemAddedWithName": "{0} zostało dodane do biblioteki",
+    "ItemRemovedWithName": "{0} zostało usunięte z biblioteki",
+    "LabelIpAddressValue": "Adres IP: {0}",
+    "LabelRunningTimeValue": "Czas trwania: {0}",
+    "Latest": "Ostatnio dodane",
+    "MessageApplicationUpdated": "Serwer Jellyfin został zaktualizowany",
+    "MessageApplicationUpdatedTo": "Serwer Jellyfin został zaktualizowany do wersji {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Sekcja {0} konfiguracji serwera została zaktualizowana",
+    "MessageServerConfigurationUpdated": "Konfiguracja serwera została zaktualizowana",
+    "MixedContent": "Zawartość mieszana",
+    "Movies": "Filmy",
+    "Music": "Muzyka",
+    "MusicVideos": "Teledyski",
+    "NameInstallFailed": "Instalacja {0} nieudana.",
+    "NameSeasonNumber": "Sezon {0}",
+    "NameSeasonUnknown": "Sezon nieznany",
+    "NewVersionIsAvailable": "Nowa wersja serwera Jellyfin jest dostępna do pobrania.",
+    "NotificationOptionApplicationUpdateAvailable": "Dostępna aktualizacja aplikacji",
+    "NotificationOptionApplicationUpdateInstalled": "Zainstalowano aktualizację aplikacji",
+    "NotificationOptionAudioPlayback": "Rozpoczęto odtwarzanie muzyki",
+    "NotificationOptionAudioPlaybackStopped": "Odtwarzane dźwięku zatrzymane",
+    "NotificationOptionCameraImageUploaded": "Przekazano obraz z urządzenia mobilnego",
+    "NotificationOptionGamePlayback": "Odtwarzanie gry rozpoczęte",
+    "NotificationOptionGamePlaybackStopped": "Odtwarzanie gry zatrzymane",
+    "NotificationOptionInstallationFailed": "Niepowodzenie instalacji",
+    "NotificationOptionNewLibraryContent": "Dodano nową zawartość",
+    "NotificationOptionPluginError": "Awaria wtyczki",
+    "NotificationOptionPluginInstalled": "Zainstalowano wtyczkę",
+    "NotificationOptionPluginUninstalled": "Odinstalowano wtyczkę",
+    "NotificationOptionPluginUpdateInstalled": "Zainstalowano aktualizację wtyczki",
+    "NotificationOptionServerRestartRequired": "Wymagane ponowne uruchomienie serwera",
+    "NotificationOptionTaskFailed": "Awaria zaplanowanego zadania",
+    "NotificationOptionUserLockedOut": "Użytkownik zablokowany",
+    "NotificationOptionVideoPlayback": "Rozpoczęto odtwarzanie wideo",
+    "NotificationOptionVideoPlaybackStopped": "Odtwarzanie wideo zatrzymane",
+    "Photos": "Zdjęcia",
+    "Playlists": "Listy odtwarzania",
+    "Plugin": "Wtyczka",
+    "PluginInstalledWithName": "{0} zostało zainstalowane",
+    "PluginUninstalledWithName": "{0} odinstalowane",
+    "PluginUpdatedWithName": "{0} zaktualizowane",
+    "ProviderValue": "Dostawca: {0}",
+    "ScheduledTaskFailedWithName": "Nieudane {0}",
+    "ScheduledTaskStartedWithName": "Rozpoczęto {0}",
+    "ServerNameNeedsToBeRestarted": "{0} wymaga ponownego uruchomienia",
+    "Shows": "Seriale",
+    "Songs": "Utwory",
+    "StartupEmbyServerIsLoading": "Twa wczytywanie serwera Jellyfin. Spróbuj ponownie za chwilę.",
+    "SubtitleDownloadFailureForItem": "Pobieranie napisów dla {0} zakończone niepowodzeniem",
+    "SubtitleDownloadFailureFromForItem": "Nieudane pobieranie napisów z {0} dla {1}",
+    "SubtitlesDownloadedForItem": "Pobrano napisy dla {0}",
+    "Sync": "Synchronizacja",
+    "System": "System",
+    "TvShows": "Seriale",
+    "User": "Użytkownik",
+    "UserCreatedWithName": "Użytkownik {0} został utworzony",
+    "UserDeletedWithName": "Użytkownik {0} został usunięty",
+    "UserDownloadingItemWithValues": "{0} pobiera {1}",
+    "UserLockedOutWithName": "Użytkownik {0} został zablokowany",
+    "UserOfflineFromDevice": "{0} z {1} został rozłączony",
+    "UserOnlineFromDevice": "{0} połączył się z {1}",
+    "UserPasswordChangedWithName": "Hasło użytkownika {0} zostało zmienione",
+    "UserPolicyUpdatedWithName": "Zmieniono zasady użytkowania dla {0}",
+    "UserStartedPlayingItemWithValues": "{0} odtwarza {1} na {2}",
+    "UserStoppedPlayingItemWithValues": "{0} zakończył odtwarzanie {1} na {2}",
+    "ValueHasBeenAddedToLibrary": "{0} został dodany to biblioteki mediów",
+    "ValueSpecialEpisodeName": "Specjalne - {0}",
+    "VersionNumber": "Wersja {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/pt-BR.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Álbuns",
-  "AppDeviceValues": "App: {0}, Dispositivo: {1}",
-  "Application": "Aplicativo",
-  "Artists": "Artistas",
-  "AuthenticationSucceededWithUserName": "{0} autenticado com sucesso",
-  "Books": "Livros",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Canais",
-  "ChapterNameValue": "Capítulo {0}",
-  "Collections": "Coletâneas",
-  "DeviceOfflineWithName": "{0} se desconectou",
-  "DeviceOnlineWithName": "{0} está conectado",
-  "FailedLoginAttemptWithUserName": "Falha na tentativa de login de {0}",
-  "Favorites": "Favoritos",
-  "Folders": "Pastas",
-  "Games": "Jogos",
-  "Genres": "Gêneros",
-  "HeaderAlbumArtists": "Artistas do Álbum",
-  "HeaderCameraUploads": "Uploads da Câmera",
-  "HeaderContinueWatching": "Continuar Assistindo",
-  "HeaderFavoriteAlbums": "Álbuns Favoritos",
-  "HeaderFavoriteArtists": "Artistas Favoritos",
-  "HeaderFavoriteEpisodes": "Episódios Favoritos",
-  "HeaderFavoriteShows": "Séries Favoritas",
-  "HeaderFavoriteSongs": "Músicas Favoritas",
-  "HeaderLiveTV": "TV ao Vivo",
-  "HeaderNextUp": "Próximos",
-  "HeaderRecordingGroups": "Grupos de Gravação",
-  "HomeVideos": "Vídeos caseiros",
-  "Inherit": "Herdar",
-  "ItemAddedWithName": "{0} foi adicionado à biblioteca",
-  "ItemRemovedWithName": "{0} foi removido da biblioteca",
-  "LabelIpAddressValue": "Endereço ip: {0}",
-  "LabelRunningTimeValue": "Tempo de execução: {0}",
-  "Latest": "Recente",
-  "MessageApplicationUpdated": "O servidor Jellyfin foi atualizado",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "A seção {0} da configuração do servidor foi atualizada",
-  "MessageServerConfigurationUpdated": "A configuração do servidor foi atualizada",
-  "MixedContent": "Conteúdo misto",
-  "Movies": "Filmes",
-  "Music": "Música",
-  "MusicVideos": "Vídeos musicais",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Temporada {0}",
-  "NameSeasonUnknown": "Temporada Desconhecida",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Atualização de aplicativo disponível",
-  "NotificationOptionApplicationUpdateInstalled": "Atualização de aplicativo instalada",
-  "NotificationOptionAudioPlayback": "Reprodução de áudio iniciada",
-  "NotificationOptionAudioPlaybackStopped": "Reprodução de áudio parada",
-  "NotificationOptionCameraImageUploaded": "Imagem de câmera enviada",
-  "NotificationOptionGamePlayback": "Reprodução de jogo iniciada",
-  "NotificationOptionGamePlaybackStopped": "Reprodução de jogo parada",
-  "NotificationOptionInstallationFailed": "Falha na instalação",
-  "NotificationOptionNewLibraryContent": "Novo conteúdo adicionado",
-  "NotificationOptionPluginError": "Falha de plugin",
-  "NotificationOptionPluginInstalled": "Plugin instalado",
-  "NotificationOptionPluginUninstalled": "Plugin desinstalado",
-  "NotificationOptionPluginUpdateInstalled": "Atualização de plugin instalada",
-  "NotificationOptionServerRestartRequired": "Necessário reiniciar servidor",
-  "NotificationOptionTaskFailed": "Falha na tarefa agendada",
-  "NotificationOptionUserLockedOut": "Usuário bloqueado",
-  "NotificationOptionVideoPlayback": "Reprodução de vídeo iniciada",
-  "NotificationOptionVideoPlaybackStopped": "Reprodução de vídeo parada",
-  "Photos": "Fotos",
-  "Playlists": "Listas de Reprodução",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} foi instalado",
-  "PluginUninstalledWithName": "{0} foi desinstalado",
-  "PluginUpdatedWithName": "{0} foi atualizado",
-  "ProviderValue": "Provedor: {0}",
-  "ScheduledTaskFailedWithName": "{0} falhou",
-  "ScheduledTaskStartedWithName": "{0} iniciada",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Séries",
-  "Songs": "Músicas",
-  "StartupEmbyServerIsLoading": "O Servidor Jellyfin está carregando. Por favor tente novamente em breve.",
-  "SubtitleDownloadFailureForItem": "Download de legendas falhou para {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Legendas baixadas para {0}",
-  "Sync": "Sincronizar",
-  "System": "Sistema",
-  "TvShows": "Séries de TV",
-  "User": "Usuário",
-  "UserCreatedWithName": "O usuário {0} foi criado",
-  "UserDeletedWithName": "O usuário {0} foi excluído",
-  "UserDownloadingItemWithValues": "{0} está baixando {1}",
-  "UserLockedOutWithName": "Usuário {0} foi bloqueado",
-  "UserOfflineFromDevice": "{0} se desconectou de {1}",
-  "UserOnlineFromDevice": "{0} está ativo em {1}",
-  "UserPasswordChangedWithName": "A senha foi alterada para o usuário {0}",
-  "UserPolicyUpdatedWithName": "A política de usuário foi atualizada para {0}",
-  "UserStartedPlayingItemWithValues": "{0} iniciou a reprodução de {1}",
-  "UserStoppedPlayingItemWithValues": "{0} parou de reproduzir {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Especial - {0}",
-  "VersionNumber": "Versão {0}"
+    "Albums": "Álbuns",
+    "AppDeviceValues": "App: {0}, Dispositivo: {1}",
+    "Application": "Aplicativo",
+    "Artists": "Artistas",
+    "AuthenticationSucceededWithUserName": "{0} autenticado com sucesso",
+    "Books": "Livros",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Canais",
+    "ChapterNameValue": "Capítulo {0}",
+    "Collections": "Coletâneas",
+    "DeviceOfflineWithName": "{0} se desconectou",
+    "DeviceOnlineWithName": "{0} está conectado",
+    "FailedLoginAttemptWithUserName": "Falha na tentativa de login de {0}",
+    "Favorites": "Favoritos",
+    "Folders": "Pastas",
+    "Games": "Jogos",
+    "Genres": "Gêneros",
+    "HeaderAlbumArtists": "Artistas do Álbum",
+    "HeaderCameraUploads": "Uploads da Câmera",
+    "HeaderContinueWatching": "Continuar Assistindo",
+    "HeaderFavoriteAlbums": "Álbuns Favoritos",
+    "HeaderFavoriteArtists": "Artistas Favoritos",
+    "HeaderFavoriteEpisodes": "Episódios Favoritos",
+    "HeaderFavoriteShows": "Séries Favoritas",
+    "HeaderFavoriteSongs": "Músicas Favoritas",
+    "HeaderLiveTV": "TV ao Vivo",
+    "HeaderNextUp": "Próximos",
+    "HeaderRecordingGroups": "Grupos de Gravação",
+    "HomeVideos": "Vídeos caseiros",
+    "Inherit": "Herdar",
+    "ItemAddedWithName": "{0} foi adicionado à biblioteca",
+    "ItemRemovedWithName": "{0} foi removido da biblioteca",
+    "LabelIpAddressValue": "Endereço ip: {0}",
+    "LabelRunningTimeValue": "Tempo de execução: {0}",
+    "Latest": "Recente",
+    "MessageApplicationUpdated": "O servidor Jellyfin foi atualizado",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "A seção {0} da configuração do servidor foi atualizada",
+    "MessageServerConfigurationUpdated": "A configuração do servidor foi atualizada",
+    "MixedContent": "Conteúdo misto",
+    "Movies": "Filmes",
+    "Music": "Música",
+    "MusicVideos": "Vídeos musicais",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Temporada {0}",
+    "NameSeasonUnknown": "Temporada Desconhecida",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Atualização de aplicativo disponível",
+    "NotificationOptionApplicationUpdateInstalled": "Atualização de aplicativo instalada",
+    "NotificationOptionAudioPlayback": "Reprodução de áudio iniciada",
+    "NotificationOptionAudioPlaybackStopped": "Reprodução de áudio parada",
+    "NotificationOptionCameraImageUploaded": "Imagem de câmera enviada",
+    "NotificationOptionGamePlayback": "Reprodução de jogo iniciada",
+    "NotificationOptionGamePlaybackStopped": "Reprodução de jogo parada",
+    "NotificationOptionInstallationFailed": "Falha na instalação",
+    "NotificationOptionNewLibraryContent": "Novo conteúdo adicionado",
+    "NotificationOptionPluginError": "Falha de plugin",
+    "NotificationOptionPluginInstalled": "Plugin instalado",
+    "NotificationOptionPluginUninstalled": "Plugin desinstalado",
+    "NotificationOptionPluginUpdateInstalled": "Atualização de plugin instalada",
+    "NotificationOptionServerRestartRequired": "Necessário reiniciar servidor",
+    "NotificationOptionTaskFailed": "Falha na tarefa agendada",
+    "NotificationOptionUserLockedOut": "Usuário bloqueado",
+    "NotificationOptionVideoPlayback": "Reprodução de vídeo iniciada",
+    "NotificationOptionVideoPlaybackStopped": "Reprodução de vídeo parada",
+    "Photos": "Fotos",
+    "Playlists": "Listas de Reprodução",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} foi instalado",
+    "PluginUninstalledWithName": "{0} foi desinstalado",
+    "PluginUpdatedWithName": "{0} foi atualizado",
+    "ProviderValue": "Provedor: {0}",
+    "ScheduledTaskFailedWithName": "{0} falhou",
+    "ScheduledTaskStartedWithName": "{0} iniciada",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Séries",
+    "Songs": "Músicas",
+    "StartupEmbyServerIsLoading": "O Servidor Jellyfin está carregando. Por favor tente novamente em breve.",
+    "SubtitleDownloadFailureForItem": "Download de legendas falhou para {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Legendas baixadas para {0}",
+    "Sync": "Sincronizar",
+    "System": "Sistema",
+    "TvShows": "Séries de TV",
+    "User": "Usuário",
+    "UserCreatedWithName": "O usuário {0} foi criado",
+    "UserDeletedWithName": "O usuário {0} foi excluído",
+    "UserDownloadingItemWithValues": "{0} está baixando {1}",
+    "UserLockedOutWithName": "Usuário {0} foi bloqueado",
+    "UserOfflineFromDevice": "{0} se desconectou de {1}",
+    "UserOnlineFromDevice": "{0} está ativo em {1}",
+    "UserPasswordChangedWithName": "A senha foi alterada para o usuário {0}",
+    "UserPolicyUpdatedWithName": "A política de usuário foi atualizada para {0}",
+    "UserStartedPlayingItemWithValues": "{0} iniciou a reprodução de {1}",
+    "UserStoppedPlayingItemWithValues": "{0} parou de reproduzir {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Especial - {0}",
+    "VersionNumber": "Versão {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/pt-PT.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Aplicação",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continuar a ver",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Séries Favoritas",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Especial -  {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Aplicação",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continuar a ver",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Séries Favoritas",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Especial -  {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/ru.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Альбомы",
-  "AppDeviceValues": "Прил.: {0}, Устр.: {1}",
-  "Application": "Приложение",
-  "Artists": "Исполнители",
-  "AuthenticationSucceededWithUserName": "{0} - авторизация успешна",
-  "Books": "Литература",
-  "CameraImageUploadedFrom": "Новое фото было выложено с {0}",
-  "Channels": "Каналы",
-  "ChapterNameValue": "Сцена {0}",
-  "Collections": "Коллекции",
-  "DeviceOfflineWithName": "{0} - подкл. разъ-но",
-  "DeviceOnlineWithName": "{0} - подкл. уст-но",
-  "FailedLoginAttemptWithUserName": "{0} - попытка входа неудачна",
-  "Favorites": "Избранное",
-  "Folders": "Папки",
-  "Games": "Игры",
-  "Genres": "Жанры",
-  "HeaderAlbumArtists": "Исп-ли альбома",
-  "HeaderCameraUploads": "Камеры",
-  "HeaderContinueWatching": "Продолжение просмотра",
-  "HeaderFavoriteAlbums": "Избранные альбомы",
-  "HeaderFavoriteArtists": "Избранные исполнители",
-  "HeaderFavoriteEpisodes": "Избранные эпизоды",
-  "HeaderFavoriteShows": "Избранные передачи",
-  "HeaderFavoriteSongs": "Избранные композиции",
-  "HeaderLiveTV": "Эфир",
-  "HeaderNextUp": "Очередное",
-  "HeaderRecordingGroups": "Группы записей",
-  "HomeVideos": "Дом. видео",
-  "Inherit": "Наследуемое",
-  "ItemAddedWithName": "{0} - добавлено в медиатеку",
-  "ItemRemovedWithName": "{0} - изъято из медиатеки",
-  "LabelIpAddressValue": "IP-адрес: {0}",
-  "LabelRunningTimeValue": "Время выполнения: {0}",
-  "Latest": "Новейшее",
-  "MessageApplicationUpdated": "Jellyfin Server был обновлён",
-  "MessageApplicationUpdatedTo": "Jellyfin Server был обновлён до {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Конфиг-ия сервера (раздел {0}) была обновлена",
-  "MessageServerConfigurationUpdated": "Конфиг-ия сервера была обновлена",
-  "MixedContent": "Смешанное содержание",
-  "Movies": "Кино",
-  "Music": "Музыка",
-  "MusicVideos": "Муз. видео",
-  "NameInstallFailed": "Установка {0} неудачна",
-  "NameSeasonNumber": "Сезон {0}",
-  "NameSeasonUnknown": "Сезон неопознан",
-  "NewVersionIsAvailable": "Имеется новая версия Jellyfin Server",
-  "NotificationOptionApplicationUpdateAvailable": "Имеется обновление приложения",
-  "NotificationOptionApplicationUpdateInstalled": "Обновление приложения установлено",
-  "NotificationOptionAudioPlayback": "Воспр-ие аудио зап-но",
-  "NotificationOptionAudioPlaybackStopped": "Восп-ие аудио ост-но",
-  "NotificationOptionCameraImageUploaded": "Произведена выкладка отснятого с камеры",
-  "NotificationOptionGamePlayback": "Воспр-ие игры зап-но",
-  "NotificationOptionGamePlaybackStopped": "Восп-ие игры ост-но",
-  "NotificationOptionInstallationFailed": "Сбой установки",
-  "NotificationOptionNewLibraryContent": "Новое содержание добавлено",
-  "NotificationOptionPluginError": "Сбой плагина",
-  "NotificationOptionPluginInstalled": "Плагин установлен",
-  "NotificationOptionPluginUninstalled": "Плагин удалён",
-  "NotificationOptionPluginUpdateInstalled": "Обновление плагина установлено",
-  "NotificationOptionServerRestartRequired": "Требуется перезапуск сервера",
-  "NotificationOptionTaskFailed": "Сбой назначенной задачи",
-  "NotificationOptionUserLockedOut": "Пользователь заблокирован",
-  "NotificationOptionVideoPlayback": "Воспр-ие видео зап-но",
-  "NotificationOptionVideoPlaybackStopped": "Восп-ие видео ост-но",
-  "Photos": "Фото",
-  "Playlists": "Плей-листы",
-  "Plugin": "Плагин",
-  "PluginInstalledWithName": "{0} - было установлено",
-  "PluginUninstalledWithName": "{0} - было удалено",
-  "PluginUpdatedWithName": "{0} - было обновлено",
-  "ProviderValue": "Поставщик: {0}",
-  "ScheduledTaskFailedWithName": "{0} - неудачна",
-  "ScheduledTaskStartedWithName": "{0} - запущена",
-  "ServerNameNeedsToBeRestarted": "Необходим перезапуск {0}",
-  "Shows": "Передачи",
-  "Songs": "Композиции",
-  "StartupEmbyServerIsLoading": "Jellyfin Server загружается. Повторите попытку в ближайшее время.",
-  "SubtitleDownloadFailureForItem": "Субтитры к {0} не удалось загрузить",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Субтитры к {0} загружены",
-  "Sync": "Синхро",
-  "System": "Система",
-  "TvShows": "ТВ",
-  "User": "Польз-ль",
-  "UserCreatedWithName": "Пользователь {0} был создан",
-  "UserDeletedWithName": "Пользователь {0} был удалён",
-  "UserDownloadingItemWithValues": "{0} загружает {1}",
-  "UserLockedOutWithName": "Пользователь {0} был заблокирован",
-  "UserOfflineFromDevice": "{0} - подкл. с {1} разъ-но",
-  "UserOnlineFromDevice": "{0} - подкл. с {1} уст-но",
-  "UserPasswordChangedWithName": "Пароль польз-ля {0} был изменён",
-  "UserPolicyUpdatedWithName": "Польз-ие политики {0} были обновлены",
-  "UserStartedPlayingItemWithValues": "{0} - воспр. «{1}» на {2}",
-  "UserStoppedPlayingItemWithValues": "{0} - воспр. «{1}» ост-но на {2}",
-  "ValueHasBeenAddedToLibrary": "{0} (добавлено в медиатеку)",
-  "ValueSpecialEpisodeName": "Спецэпизод - {0}",
-  "VersionNumber": "Версия {0}"
+    "Albums": "Альбомы",
+    "AppDeviceValues": "Прил.: {0}, Устр.: {1}",
+    "Application": "Приложение",
+    "Artists": "Исполнители",
+    "AuthenticationSucceededWithUserName": "{0} - авторизация успешна",
+    "Books": "Литература",
+    "CameraImageUploadedFrom": "Новое фото было выложено с {0}",
+    "Channels": "Каналы",
+    "ChapterNameValue": "Сцена {0}",
+    "Collections": "Коллекции",
+    "DeviceOfflineWithName": "{0} - подкл. разъ-но",
+    "DeviceOnlineWithName": "{0} - подкл. уст-но",
+    "FailedLoginAttemptWithUserName": "{0} - попытка входа неудачна",
+    "Favorites": "Избранное",
+    "Folders": "Папки",
+    "Games": "Игры",
+    "Genres": "Жанры",
+    "HeaderAlbumArtists": "Исп-ли альбома",
+    "HeaderCameraUploads": "Камеры",
+    "HeaderContinueWatching": "Продолжение просмотра",
+    "HeaderFavoriteAlbums": "Избранные альбомы",
+    "HeaderFavoriteArtists": "Избранные исполнители",
+    "HeaderFavoriteEpisodes": "Избранные эпизоды",
+    "HeaderFavoriteShows": "Избранные передачи",
+    "HeaderFavoriteSongs": "Избранные композиции",
+    "HeaderLiveTV": "Эфир",
+    "HeaderNextUp": "Очередное",
+    "HeaderRecordingGroups": "Группы записей",
+    "HomeVideos": "Дом. видео",
+    "Inherit": "Наследуемое",
+    "ItemAddedWithName": "{0} - добавлено в медиатеку",
+    "ItemRemovedWithName": "{0} - изъято из медиатеки",
+    "LabelIpAddressValue": "IP-адрес: {0}",
+    "LabelRunningTimeValue": "Время выполнения: {0}",
+    "Latest": "Новейшее",
+    "MessageApplicationUpdated": "Jellyfin Server был обновлён",
+    "MessageApplicationUpdatedTo": "Jellyfin Server был обновлён до {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Конфиг-ия сервера (раздел {0}) была обновлена",
+    "MessageServerConfigurationUpdated": "Конфиг-ия сервера была обновлена",
+    "MixedContent": "Смешанное содержание",
+    "Movies": "Кино",
+    "Music": "Музыка",
+    "MusicVideos": "Муз. видео",
+    "NameInstallFailed": "Установка {0} неудачна",
+    "NameSeasonNumber": "Сезон {0}",
+    "NameSeasonUnknown": "Сезон неопознан",
+    "NewVersionIsAvailable": "Имеется новая версия Jellyfin Server",
+    "NotificationOptionApplicationUpdateAvailable": "Имеется обновление приложения",
+    "NotificationOptionApplicationUpdateInstalled": "Обновление приложения установлено",
+    "NotificationOptionAudioPlayback": "Воспр-ие аудио зап-но",
+    "NotificationOptionAudioPlaybackStopped": "Восп-ие аудио ост-но",
+    "NotificationOptionCameraImageUploaded": "Произведена выкладка отснятого с камеры",
+    "NotificationOptionGamePlayback": "Воспр-ие игры зап-но",
+    "NotificationOptionGamePlaybackStopped": "Восп-ие игры ост-но",
+    "NotificationOptionInstallationFailed": "Сбой установки",
+    "NotificationOptionNewLibraryContent": "Новое содержание добавлено",
+    "NotificationOptionPluginError": "Сбой плагина",
+    "NotificationOptionPluginInstalled": "Плагин установлен",
+    "NotificationOptionPluginUninstalled": "Плагин удалён",
+    "NotificationOptionPluginUpdateInstalled": "Обновление плагина установлено",
+    "NotificationOptionServerRestartRequired": "Требуется перезапуск сервера",
+    "NotificationOptionTaskFailed": "Сбой назначенной задачи",
+    "NotificationOptionUserLockedOut": "Пользователь заблокирован",
+    "NotificationOptionVideoPlayback": "Воспр-ие видео зап-но",
+    "NotificationOptionVideoPlaybackStopped": "Восп-ие видео ост-но",
+    "Photos": "Фото",
+    "Playlists": "Плей-листы",
+    "Plugin": "Плагин",
+    "PluginInstalledWithName": "{0} - было установлено",
+    "PluginUninstalledWithName": "{0} - было удалено",
+    "PluginUpdatedWithName": "{0} - было обновлено",
+    "ProviderValue": "Поставщик: {0}",
+    "ScheduledTaskFailedWithName": "{0} - неудачна",
+    "ScheduledTaskStartedWithName": "{0} - запущена",
+    "ServerNameNeedsToBeRestarted": "Необходим перезапуск {0}",
+    "Shows": "Передачи",
+    "Songs": "Композиции",
+    "StartupEmbyServerIsLoading": "Jellyfin Server загружается. Повторите попытку в ближайшее время.",
+    "SubtitleDownloadFailureForItem": "Субтитры к {0} не удалось загрузить",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Субтитры к {0} загружены",
+    "Sync": "Синхро",
+    "System": "Система",
+    "TvShows": "ТВ",
+    "User": "Польз-ль",
+    "UserCreatedWithName": "Пользователь {0} был создан",
+    "UserDeletedWithName": "Пользователь {0} был удалён",
+    "UserDownloadingItemWithValues": "{0} загружает {1}",
+    "UserLockedOutWithName": "Пользователь {0} был заблокирован",
+    "UserOfflineFromDevice": "{0} - подкл. с {1} разъ-но",
+    "UserOnlineFromDevice": "{0} - подкл. с {1} уст-но",
+    "UserPasswordChangedWithName": "Пароль польз-ля {0} был изменён",
+    "UserPolicyUpdatedWithName": "Польз-ие политики {0} были обновлены",
+    "UserStartedPlayingItemWithValues": "{0} - воспр. «{1}» на {2}",
+    "UserStoppedPlayingItemWithValues": "{0} - воспр. «{1}» ост-но на {2}",
+    "ValueHasBeenAddedToLibrary": "{0} (добавлено в медиатеку)",
+    "ValueSpecialEpisodeName": "Спецэпизод - {0}",
+    "VersionNumber": "Версия {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/sk.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albumy",
-  "AppDeviceValues": "Aplikácia: {0}, Zariadenie: {1}",
-  "Application": "Aplikácia",
-  "Artists": "Umelci",
-  "AuthenticationSucceededWithUserName": "{0} úspešne overený",
-  "Books": "Knihy",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanály",
-  "ChapterNameValue": "Kapitola {0}",
-  "Collections": "Zbierky",
-  "DeviceOfflineWithName": "{0} je odpojený",
-  "DeviceOnlineWithName": "{0} je pripojený",
-  "FailedLoginAttemptWithUserName": "Neúspešný pokus o prihlásenie z {0}",
-  "Favorites": "Obľúbené",
-  "Folders": "Priečinky",
-  "Games": "Hry",
-  "Genres": "Žánre",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Pokračujte v pozeraní",
-  "HeaderFavoriteAlbums": "Obľúbené albumy",
-  "HeaderFavoriteArtists": "Obľúbení umelci",
-  "HeaderFavoriteEpisodes": "Obľúbené epizódy",
-  "HeaderFavoriteShows": "Obľúbené seriály",
-  "HeaderFavoriteSongs": "Obľúbené pesničky",
-  "HeaderLiveTV": "Živá TV",
-  "HeaderNextUp": "Nasleduje",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Domáce videá",
-  "Inherit": "Zdediť",
-  "ItemAddedWithName": "{0} bol pridaný do knižnice",
-  "ItemRemovedWithName": "{0} bol odstránený z knižnice",
-  "LabelIpAddressValue": "IP adresa: {0}",
-  "LabelRunningTimeValue": "Dĺžka: {0}",
-  "Latest": "Najnovšie",
-  "MessageApplicationUpdated": "Jellyfin Server bol aktualizovaný",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Sekcia {0} konfigurácie servera bola aktualizovaná",
-  "MessageServerConfigurationUpdated": "Konfigurácia servera aktualizovaná",
-  "MixedContent": "Zmiešaný obsah",
-  "Movies": "Filmy",
-  "Music": "Hudba",
-  "MusicVideos": "Hudobné videá",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Sezóna {0}",
-  "NameSeasonUnknown": "Neznáma sezóna",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Je dostupná aktualizácia aplikácie",
-  "NotificationOptionApplicationUpdateInstalled": "Aktualizácia aplikácie nainštalovaná",
-  "NotificationOptionAudioPlayback": "Spustené prehrávanie audia",
-  "NotificationOptionAudioPlaybackStopped": "Zastavené prehrávanie audia",
-  "NotificationOptionCameraImageUploaded": "Nahraný obrázok z fotoaparátu",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Hra ukončená",
-  "NotificationOptionInstallationFailed": "Chyba inštalácie",
-  "NotificationOptionNewLibraryContent": "Pridaný nový obsah",
-  "NotificationOptionPluginError": "Chyba rozšírenia",
-  "NotificationOptionPluginInstalled": "Rozšírenie nainštalované",
-  "NotificationOptionPluginUninstalled": "Rozšírenie odinštalované",
-  "NotificationOptionPluginUpdateInstalled": "Aktualizácia rozšírenia nainštalovaná",
-  "NotificationOptionServerRestartRequired": "Vyžaduje sa reštart servera",
-  "NotificationOptionTaskFailed": "Naplánovaná úloha zlyhala",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Spustené prehrávanie videa",
-  "NotificationOptionVideoPlaybackStopped": "Zastavené prehrávanie videa",
-  "Photos": "Fotky",
-  "Playlists": "Zoznamy skladieb",
-  "Plugin": "Rozšírenie",
-  "PluginInstalledWithName": "{0} bol nainštalovaný",
-  "PluginUninstalledWithName": "{0} bol odinštalovaný",
-  "PluginUpdatedWithName": "{0} bol aktualizovaný",
-  "ProviderValue": "Poskytovateľ: {0}",
-  "ScheduledTaskFailedWithName": "{0} zlyhalo",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Series",
-  "Songs": "Skladby",
-  "StartupEmbyServerIsLoading": "Jellyfin Server sa spúšťa. Skúste to prosím o chvíľu znova.",
-  "SubtitleDownloadFailureForItem": "Sťahovanie titulkov pre {0} zlyhalo",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Titulky pre {0} stiahnuté",
-  "Sync": "Sync",
-  "System": "Systém",
-  "TvShows": "TV Shows",
-  "User": "Používateľ",
-  "UserCreatedWithName": "Používateľ {0} bol vytvorený",
-  "UserDeletedWithName": "Používateľ {0} bol vymazaný",
-  "UserDownloadingItemWithValues": "{0} sťahuje {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} sa odpojil od {1}",
-  "UserOnlineFromDevice": "{0} je online z {1}",
-  "UserPasswordChangedWithName": "Heslo používateľa {0} zmenené",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} spustil prehrávanie {1}",
-  "UserStoppedPlayingItemWithValues": "{0} zastavil prehrávanie {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Špeciál - {0}",
-  "VersionNumber": "Verzia {0}"
+    "Albums": "Albumy",
+    "AppDeviceValues": "Aplikácia: {0}, Zariadenie: {1}",
+    "Application": "Aplikácia",
+    "Artists": "Umelci",
+    "AuthenticationSucceededWithUserName": "{0} úspešne overený",
+    "Books": "Knihy",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanály",
+    "ChapterNameValue": "Kapitola {0}",
+    "Collections": "Zbierky",
+    "DeviceOfflineWithName": "{0} je odpojený",
+    "DeviceOnlineWithName": "{0} je pripojený",
+    "FailedLoginAttemptWithUserName": "Neúspešný pokus o prihlásenie z {0}",
+    "Favorites": "Obľúbené",
+    "Folders": "Priečinky",
+    "Games": "Hry",
+    "Genres": "Žánre",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Pokračujte v pozeraní",
+    "HeaderFavoriteAlbums": "Obľúbené albumy",
+    "HeaderFavoriteArtists": "Obľúbení umelci",
+    "HeaderFavoriteEpisodes": "Obľúbené epizódy",
+    "HeaderFavoriteShows": "Obľúbené seriály",
+    "HeaderFavoriteSongs": "Obľúbené pesničky",
+    "HeaderLiveTV": "Živá TV",
+    "HeaderNextUp": "Nasleduje",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Domáce videá",
+    "Inherit": "Zdediť",
+    "ItemAddedWithName": "{0} bol pridaný do knižnice",
+    "ItemRemovedWithName": "{0} bol odstránený z knižnice",
+    "LabelIpAddressValue": "IP adresa: {0}",
+    "LabelRunningTimeValue": "Dĺžka: {0}",
+    "Latest": "Najnovšie",
+    "MessageApplicationUpdated": "Jellyfin Server bol aktualizovaný",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Sekcia {0} konfigurácie servera bola aktualizovaná",
+    "MessageServerConfigurationUpdated": "Konfigurácia servera aktualizovaná",
+    "MixedContent": "Zmiešaný obsah",
+    "Movies": "Filmy",
+    "Music": "Hudba",
+    "MusicVideos": "Hudobné videá",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Sezóna {0}",
+    "NameSeasonUnknown": "Neznáma sezóna",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Je dostupná aktualizácia aplikácie",
+    "NotificationOptionApplicationUpdateInstalled": "Aktualizácia aplikácie nainštalovaná",
+    "NotificationOptionAudioPlayback": "Spustené prehrávanie audia",
+    "NotificationOptionAudioPlaybackStopped": "Zastavené prehrávanie audia",
+    "NotificationOptionCameraImageUploaded": "Nahraný obrázok z fotoaparátu",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Hra ukončená",
+    "NotificationOptionInstallationFailed": "Chyba inštalácie",
+    "NotificationOptionNewLibraryContent": "Pridaný nový obsah",
+    "NotificationOptionPluginError": "Chyba rozšírenia",
+    "NotificationOptionPluginInstalled": "Rozšírenie nainštalované",
+    "NotificationOptionPluginUninstalled": "Rozšírenie odinštalované",
+    "NotificationOptionPluginUpdateInstalled": "Aktualizácia rozšírenia nainštalovaná",
+    "NotificationOptionServerRestartRequired": "Vyžaduje sa reštart servera",
+    "NotificationOptionTaskFailed": "Naplánovaná úloha zlyhala",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Spustené prehrávanie videa",
+    "NotificationOptionVideoPlaybackStopped": "Zastavené prehrávanie videa",
+    "Photos": "Fotky",
+    "Playlists": "Zoznamy skladieb",
+    "Plugin": "Rozšírenie",
+    "PluginInstalledWithName": "{0} bol nainštalovaný",
+    "PluginUninstalledWithName": "{0} bol odinštalovaný",
+    "PluginUpdatedWithName": "{0} bol aktualizovaný",
+    "ProviderValue": "Poskytovateľ: {0}",
+    "ScheduledTaskFailedWithName": "{0} zlyhalo",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Series",
+    "Songs": "Skladby",
+    "StartupEmbyServerIsLoading": "Jellyfin Server sa spúšťa. Skúste to prosím o chvíľu znova.",
+    "SubtitleDownloadFailureForItem": "Sťahovanie titulkov pre {0} zlyhalo",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Titulky pre {0} stiahnuté",
+    "Sync": "Sync",
+    "System": "Systém",
+    "TvShows": "TV Shows",
+    "User": "Používateľ",
+    "UserCreatedWithName": "Používateľ {0} bol vytvorený",
+    "UserDeletedWithName": "Používateľ {0} bol vymazaný",
+    "UserDownloadingItemWithValues": "{0} sťahuje {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} sa odpojil od {1}",
+    "UserOnlineFromDevice": "{0} je online z {1}",
+    "UserPasswordChangedWithName": "Heslo používateľa {0} zmenené",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} spustil prehrávanie {1}",
+    "UserStoppedPlayingItemWithValues": "{0} zastavil prehrávanie {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Špeciál - {0}",
+    "VersionNumber": "Verzia {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/sl-SI.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Serije",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Serije",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/sv.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Album",
-  "AppDeviceValues": "App: {0}, Enhet: {1}",
-  "Application": "App",
-  "Artists": "Artister",
-  "AuthenticationSucceededWithUserName": "{0} har autentiserats",
-  "Books": "Böcker",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Kanaler",
-  "ChapterNameValue": "Kapitel {0}",
-  "Collections": "Samlingar",
-  "DeviceOfflineWithName": "{0} har tappat anslutningen",
-  "DeviceOnlineWithName": "{0} är ansluten",
-  "FailedLoginAttemptWithUserName": "Misslyckat inloggningsförsök från {0}",
-  "Favorites": "Favoriter",
-  "Folders": "Mappar",
-  "Games": "Spel",
-  "Genres": "Genrer",
-  "HeaderAlbumArtists": "Albumartister",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Fortsätt kolla på",
-  "HeaderFavoriteAlbums": "Favoritalbum",
-  "HeaderFavoriteArtists": "Favoritartister",
-  "HeaderFavoriteEpisodes": "Favoritavsnitt",
-  "HeaderFavoriteShows": "Favoritserier",
-  "HeaderFavoriteSongs": "Favoritlåtar",
-  "HeaderLiveTV": "Live-TV",
-  "HeaderNextUp": "Nästa på tur",
-  "HeaderRecordingGroups": "Inspelningsgrupper",
-  "HomeVideos": "Hemvideor",
-  "Inherit": "Ärv",
-  "ItemAddedWithName": "{0} lades till i biblioteket",
-  "ItemRemovedWithName": "{0} togs bort från biblioteket",
-  "LabelIpAddressValue": "IP-adress: {0}",
-  "LabelRunningTimeValue": "Speltid: {0}",
-  "Latest": "Senaste",
-  "MessageApplicationUpdated": "Jellyfin Server har uppdaterats",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Serverinställningarna {0} har uppdaterats",
-  "MessageServerConfigurationUpdated": "Server konfigurationen har uppdaterats",
-  "MixedContent": "Blandat innehåll",
-  "Movies": "Filmer",
-  "Music": "Musik",
-  "MusicVideos": "Musikvideos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Säsong {0}",
-  "NameSeasonUnknown": "Okänd säsong",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Ny programversion tillgänglig",
-  "NotificationOptionApplicationUpdateInstalled": "Programuppdatering installerad",
-  "NotificationOptionAudioPlayback": "Ljuduppspelning har påbörjats",
-  "NotificationOptionAudioPlaybackStopped": "Ljuduppspelning stoppad",
-  "NotificationOptionCameraImageUploaded": "Kamerabild har laddats upp",
-  "NotificationOptionGamePlayback": "Spel har startats",
-  "NotificationOptionGamePlaybackStopped": "Spel stoppat",
-  "NotificationOptionInstallationFailed": "Fel vid installation",
-  "NotificationOptionNewLibraryContent": "Nytt innehåll har lagts till",
-  "NotificationOptionPluginError": "Fel uppstod med tillägget",
-  "NotificationOptionPluginInstalled": "Tillägg har installerats",
-  "NotificationOptionPluginUninstalled": "Tillägg har avinstallerats",
-  "NotificationOptionPluginUpdateInstalled": "Tillägg har uppdaterats",
-  "NotificationOptionServerRestartRequired": "Servern måste startas om",
-  "NotificationOptionTaskFailed": "Schemalagd aktivitet har misslyckats",
-  "NotificationOptionUserLockedOut": "Användare har låsts ut",
-  "NotificationOptionVideoPlayback": "Videouppspelning har påbörjats",
-  "NotificationOptionVideoPlaybackStopped": "Videouppspelning stoppad",
-  "Photos": "Bilder",
-  "Playlists": "Spellistor",
-  "Plugin": "Tillägg",
-  "PluginInstalledWithName": "{0} installerades",
-  "PluginUninstalledWithName": "{0} avinstallerades",
-  "PluginUpdatedWithName": "{0} uppdaterades",
-  "ProviderValue": "Källa: {0}",
-  "ScheduledTaskFailedWithName": "{0} misslyckades",
-  "ScheduledTaskStartedWithName": "{0} startad",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Serier",
-  "Songs": "Låtar",
-  "StartupEmbyServerIsLoading": "Jellyfin server arbetar. Pröva igen inom kort.",
-  "SubtitleDownloadFailureForItem": "Nerladdning av undertexter för {0} misslyckades",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Undertexter har laddats ner till {0}",
-  "Sync": "Synk",
-  "System": "System",
-  "TvShows": "TV-serier",
-  "User": "Användare",
-  "UserCreatedWithName": "Användaren {0} har skapats",
-  "UserDeletedWithName": "Användaren {0} har tagits bort",
-  "UserDownloadingItemWithValues": "{0} laddar ner {1}",
-  "UserLockedOutWithName": "Användare {0} har låsts ute",
-  "UserOfflineFromDevice": "{0} har avbrutit anslutningen från {1}",
-  "UserOnlineFromDevice": "{0} är uppkopplad från {1}",
-  "UserPasswordChangedWithName": "Lösenordet för {0} har ändrats",
-  "UserPolicyUpdatedWithName": "Användarpolicyn har uppdaterats för {0}",
-  "UserStartedPlayingItemWithValues": "{0} har börjat spela upp {1}",
-  "UserStoppedPlayingItemWithValues": "{0} har avslutat uppspelningen av {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Specialavsnitt - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Album",
+    "AppDeviceValues": "App: {0}, Enhet: {1}",
+    "Application": "App",
+    "Artists": "Artister",
+    "AuthenticationSucceededWithUserName": "{0} har autentiserats",
+    "Books": "Böcker",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Kanaler",
+    "ChapterNameValue": "Kapitel {0}",
+    "Collections": "Samlingar",
+    "DeviceOfflineWithName": "{0} har tappat anslutningen",
+    "DeviceOnlineWithName": "{0} är ansluten",
+    "FailedLoginAttemptWithUserName": "Misslyckat inloggningsförsök från {0}",
+    "Favorites": "Favoriter",
+    "Folders": "Mappar",
+    "Games": "Spel",
+    "Genres": "Genrer",
+    "HeaderAlbumArtists": "Albumartister",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Fortsätt kolla på",
+    "HeaderFavoriteAlbums": "Favoritalbum",
+    "HeaderFavoriteArtists": "Favoritartister",
+    "HeaderFavoriteEpisodes": "Favoritavsnitt",
+    "HeaderFavoriteShows": "Favoritserier",
+    "HeaderFavoriteSongs": "Favoritlåtar",
+    "HeaderLiveTV": "Live-TV",
+    "HeaderNextUp": "Nästa på tur",
+    "HeaderRecordingGroups": "Inspelningsgrupper",
+    "HomeVideos": "Hemvideor",
+    "Inherit": "Ärv",
+    "ItemAddedWithName": "{0} lades till i biblioteket",
+    "ItemRemovedWithName": "{0} togs bort från biblioteket",
+    "LabelIpAddressValue": "IP-adress: {0}",
+    "LabelRunningTimeValue": "Speltid: {0}",
+    "Latest": "Senaste",
+    "MessageApplicationUpdated": "Jellyfin Server har uppdaterats",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Serverinställningarna {0} har uppdaterats",
+    "MessageServerConfigurationUpdated": "Server konfigurationen har uppdaterats",
+    "MixedContent": "Blandat innehåll",
+    "Movies": "Filmer",
+    "Music": "Musik",
+    "MusicVideos": "Musikvideos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Säsong {0}",
+    "NameSeasonUnknown": "Okänd säsong",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Ny programversion tillgänglig",
+    "NotificationOptionApplicationUpdateInstalled": "Programuppdatering installerad",
+    "NotificationOptionAudioPlayback": "Ljuduppspelning har påbörjats",
+    "NotificationOptionAudioPlaybackStopped": "Ljuduppspelning stoppad",
+    "NotificationOptionCameraImageUploaded": "Kamerabild har laddats upp",
+    "NotificationOptionGamePlayback": "Spel har startats",
+    "NotificationOptionGamePlaybackStopped": "Spel stoppat",
+    "NotificationOptionInstallationFailed": "Fel vid installation",
+    "NotificationOptionNewLibraryContent": "Nytt innehåll har lagts till",
+    "NotificationOptionPluginError": "Fel uppstod med tillägget",
+    "NotificationOptionPluginInstalled": "Tillägg har installerats",
+    "NotificationOptionPluginUninstalled": "Tillägg har avinstallerats",
+    "NotificationOptionPluginUpdateInstalled": "Tillägg har uppdaterats",
+    "NotificationOptionServerRestartRequired": "Servern måste startas om",
+    "NotificationOptionTaskFailed": "Schemalagd aktivitet har misslyckats",
+    "NotificationOptionUserLockedOut": "Användare har låsts ut",
+    "NotificationOptionVideoPlayback": "Videouppspelning har påbörjats",
+    "NotificationOptionVideoPlaybackStopped": "Videouppspelning stoppad",
+    "Photos": "Bilder",
+    "Playlists": "Spellistor",
+    "Plugin": "Tillägg",
+    "PluginInstalledWithName": "{0} installerades",
+    "PluginUninstalledWithName": "{0} avinstallerades",
+    "PluginUpdatedWithName": "{0} uppdaterades",
+    "ProviderValue": "Källa: {0}",
+    "ScheduledTaskFailedWithName": "{0} misslyckades",
+    "ScheduledTaskStartedWithName": "{0} startad",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Serier",
+    "Songs": "Låtar",
+    "StartupEmbyServerIsLoading": "Jellyfin server arbetar. Pröva igen inom kort.",
+    "SubtitleDownloadFailureForItem": "Nerladdning av undertexter för {0} misslyckades",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Undertexter har laddats ner till {0}",
+    "Sync": "Synk",
+    "System": "System",
+    "TvShows": "TV-serier",
+    "User": "Användare",
+    "UserCreatedWithName": "Användaren {0} har skapats",
+    "UserDeletedWithName": "Användaren {0} har tagits bort",
+    "UserDownloadingItemWithValues": "{0} laddar ner {1}",
+    "UserLockedOutWithName": "Användare {0} har låsts ute",
+    "UserOfflineFromDevice": "{0} har avbrutit anslutningen från {1}",
+    "UserOnlineFromDevice": "{0} är uppkopplad från {1}",
+    "UserPasswordChangedWithName": "Lösenordet för {0} har ändrats",
+    "UserPolicyUpdatedWithName": "Användarpolicyn har uppdaterats för {0}",
+    "UserStartedPlayingItemWithValues": "{0} har börjat spela upp {1}",
+    "UserStoppedPlayingItemWithValues": "{0} har avslutat uppspelningen av {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Specialavsnitt - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/tr.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favori Showlar",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "Version {0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favori Showlar",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "Version {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/zh-CN.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "专辑",
-  "AppDeviceValues": "应用: {0}, 设备: {1}",
-  "Application": "应用程序",
-  "Artists": "艺术家",
-  "AuthenticationSucceededWithUserName": "{0} 成功验证",
-  "Books": "书籍",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "频道",
-  "ChapterNameValue": "章节 {0}",
-  "Collections": "合集",
-  "DeviceOfflineWithName": "{0} 已断开",
-  "DeviceOnlineWithName": "{0} 已连接",
-  "FailedLoginAttemptWithUserName": "来自 {0} 的失败登入",
-  "Favorites": "最爱",
-  "Folders": "文件夹",
-  "Games": "游戏",
-  "Genres": "风格",
-  "HeaderAlbumArtists": "专辑作家",
-  "HeaderCameraUploads": "相机上传",
-  "HeaderContinueWatching": "继续观看",
-  "HeaderFavoriteAlbums": "最爱的专辑",
-  "HeaderFavoriteArtists": "最爱作家",
-  "HeaderFavoriteEpisodes": "最爱的集",
-  "HeaderFavoriteShows": "最爱的节目",
-  "HeaderFavoriteSongs": "最爱的歌曲",
-  "HeaderLiveTV": "电视直播",
-  "HeaderNextUp": "接下来",
-  "HeaderRecordingGroups": "录制组",
-  "HomeVideos": "家庭视频",
-  "Inherit": "继承",
-  "ItemAddedWithName": "{0} 已添加到媒体库",
-  "ItemRemovedWithName": "{0} 已从媒体库中移除",
-  "LabelIpAddressValue": "Ip 地址:{0}",
-  "LabelRunningTimeValue": "运行时间:{0}",
-  "Latest": "最新",
-  "MessageApplicationUpdated": "Jellyfin 服务器已更新",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "服务器配置 {0} 部分已更新",
-  "MessageServerConfigurationUpdated": "服务器配置已更新",
-  "MixedContent": "混合内容",
-  "Movies": "电影",
-  "Music": "音乐",
-  "MusicVideos": "音乐视频",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "季 {0}",
-  "NameSeasonUnknown": "未知季",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "有可用的应用程序更新",
-  "NotificationOptionApplicationUpdateInstalled": "应用程序更新已安装",
-  "NotificationOptionAudioPlayback": "音频开始播放",
-  "NotificationOptionAudioPlaybackStopped": "音频播放已停止",
-  "NotificationOptionCameraImageUploaded": "相机图片已上传",
-  "NotificationOptionGamePlayback": "游戏开始",
-  "NotificationOptionGamePlaybackStopped": "游戏停止",
-  "NotificationOptionInstallationFailed": "安装失败",
-  "NotificationOptionNewLibraryContent": "已添加新内容",
-  "NotificationOptionPluginError": "插件失败",
-  "NotificationOptionPluginInstalled": "插件已安装",
-  "NotificationOptionPluginUninstalled": "插件已卸载",
-  "NotificationOptionPluginUpdateInstalled": "插件更新已安装",
-  "NotificationOptionServerRestartRequired": "服务器需要重启",
-  "NotificationOptionTaskFailed": "计划任务失败",
-  "NotificationOptionUserLockedOut": "用户已锁定",
-  "NotificationOptionVideoPlayback": "视频开始播放",
-  "NotificationOptionVideoPlaybackStopped": "视频播放已停止",
-  "Photos": "照片",
-  "Playlists": "播放列表",
-  "Plugin": "插件",
-  "PluginInstalledWithName": "{0} 已安装",
-  "PluginUninstalledWithName": "{0} 已卸载",
-  "PluginUpdatedWithName": "{0} 已更新",
-  "ProviderValue": "提供商:{0}",
-  "ScheduledTaskFailedWithName": "{0} 已失败",
-  "ScheduledTaskStartedWithName": "{0} 已开始",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "节目",
-  "Songs": "歌曲",
-  "StartupEmbyServerIsLoading": "Jellyfin 服务器加载中。请稍后再试。",
-  "SubtitleDownloadFailureForItem": "为 {0} 下载字幕失败",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "已为 {0} 下载了字幕",
-  "Sync": "同步",
-  "System": "系统",
-  "TvShows": "电视节目",
-  "User": "用户",
-  "UserCreatedWithName": "用户 {0} 已创建",
-  "UserDeletedWithName": "用户 {0} 已删除",
-  "UserDownloadingItemWithValues": "{0} 正在下载 {1}",
-  "UserLockedOutWithName": "用户 {0} 已被锁定",
-  "UserOfflineFromDevice": "{0} 已从 {1} 断开",
-  "UserOnlineFromDevice": "{0} 在线,来自 {1}",
-  "UserPasswordChangedWithName": "已为用户 {0} 更改密码",
-  "UserPolicyUpdatedWithName": "用户协议已经被更新为 {0}",
-  "UserStartedPlayingItemWithValues": "{0} 已开始播放 {1}",
-  "UserStoppedPlayingItemWithValues": "{0} 已停止播放 {1}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "特典 - {0}",
-  "VersionNumber": "版本 {0}"
+    "Albums": "专辑",
+    "AppDeviceValues": "应用: {0}, 设备: {1}",
+    "Application": "应用程序",
+    "Artists": "艺术家",
+    "AuthenticationSucceededWithUserName": "{0} 成功验证",
+    "Books": "书籍",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "频道",
+    "ChapterNameValue": "章节 {0}",
+    "Collections": "合集",
+    "DeviceOfflineWithName": "{0} 已断开",
+    "DeviceOnlineWithName": "{0} 已连接",
+    "FailedLoginAttemptWithUserName": "来自 {0} 的失败登入",
+    "Favorites": "最爱",
+    "Folders": "文件夹",
+    "Games": "游戏",
+    "Genres": "风格",
+    "HeaderAlbumArtists": "专辑作家",
+    "HeaderCameraUploads": "相机上传",
+    "HeaderContinueWatching": "继续观看",
+    "HeaderFavoriteAlbums": "最爱的专辑",
+    "HeaderFavoriteArtists": "最爱作家",
+    "HeaderFavoriteEpisodes": "最爱的集",
+    "HeaderFavoriteShows": "最爱的节目",
+    "HeaderFavoriteSongs": "最爱的歌曲",
+    "HeaderLiveTV": "电视直播",
+    "HeaderNextUp": "接下来",
+    "HeaderRecordingGroups": "录制组",
+    "HomeVideos": "家庭视频",
+    "Inherit": "继承",
+    "ItemAddedWithName": "{0} 已添加到媒体库",
+    "ItemRemovedWithName": "{0} 已从媒体库中移除",
+    "LabelIpAddressValue": "Ip 地址:{0}",
+    "LabelRunningTimeValue": "运行时间:{0}",
+    "Latest": "最新",
+    "MessageApplicationUpdated": "Jellyfin 服务器已更新",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "服务器配置 {0} 部分已更新",
+    "MessageServerConfigurationUpdated": "服务器配置已更新",
+    "MixedContent": "混合内容",
+    "Movies": "电影",
+    "Music": "音乐",
+    "MusicVideos": "音乐视频",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "季 {0}",
+    "NameSeasonUnknown": "未知季",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "有可用的应用程序更新",
+    "NotificationOptionApplicationUpdateInstalled": "应用程序更新已安装",
+    "NotificationOptionAudioPlayback": "音频开始播放",
+    "NotificationOptionAudioPlaybackStopped": "音频播放已停止",
+    "NotificationOptionCameraImageUploaded": "相机图片已上传",
+    "NotificationOptionGamePlayback": "游戏开始",
+    "NotificationOptionGamePlaybackStopped": "游戏停止",
+    "NotificationOptionInstallationFailed": "安装失败",
+    "NotificationOptionNewLibraryContent": "已添加新内容",
+    "NotificationOptionPluginError": "插件失败",
+    "NotificationOptionPluginInstalled": "插件已安装",
+    "NotificationOptionPluginUninstalled": "插件已卸载",
+    "NotificationOptionPluginUpdateInstalled": "插件更新已安装",
+    "NotificationOptionServerRestartRequired": "服务器需要重启",
+    "NotificationOptionTaskFailed": "计划任务失败",
+    "NotificationOptionUserLockedOut": "用户已锁定",
+    "NotificationOptionVideoPlayback": "视频开始播放",
+    "NotificationOptionVideoPlaybackStopped": "视频播放已停止",
+    "Photos": "照片",
+    "Playlists": "播放列表",
+    "Plugin": "插件",
+    "PluginInstalledWithName": "{0} 已安装",
+    "PluginUninstalledWithName": "{0} 已卸载",
+    "PluginUpdatedWithName": "{0} 已更新",
+    "ProviderValue": "提供商:{0}",
+    "ScheduledTaskFailedWithName": "{0} 已失败",
+    "ScheduledTaskStartedWithName": "{0} 已开始",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "节目",
+    "Songs": "歌曲",
+    "StartupEmbyServerIsLoading": "Jellyfin 服务器加载中。请稍后再试。",
+    "SubtitleDownloadFailureForItem": "为 {0} 下载字幕失败",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "已为 {0} 下载了字幕",
+    "Sync": "同步",
+    "System": "系统",
+    "TvShows": "电视节目",
+    "User": "用户",
+    "UserCreatedWithName": "用户 {0} 已创建",
+    "UserDeletedWithName": "用户 {0} 已删除",
+    "UserDownloadingItemWithValues": "{0} 正在下载 {1}",
+    "UserLockedOutWithName": "用户 {0} 已被锁定",
+    "UserOfflineFromDevice": "{0} 已从 {1} 断开",
+    "UserOnlineFromDevice": "{0} 在线,来自 {1}",
+    "UserPasswordChangedWithName": "已为用户 {0} 更改密码",
+    "UserPolicyUpdatedWithName": "用户协议已经被更新为 {0}",
+    "UserStartedPlayingItemWithValues": "{0} 已开始播放 {1}",
+    "UserStoppedPlayingItemWithValues": "{0} 已停止播放 {1}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "特典 - {0}",
+    "VersionNumber": "版本 {0}"
 }

+ 98 - 98
Emby.Server.Implementations/Localization/Core/zh-HK.json

@@ -1,100 +1,100 @@
 {
-  "Albums": "Albums",
-  "AppDeviceValues": "App: {0}, Device: {1}",
-  "Application": "Application",
-  "Artists": "Artists",
-  "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
-  "Books": "Books",
-  "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
-  "Channels": "Channels",
-  "ChapterNameValue": "Chapter {0}",
-  "Collections": "Collections",
-  "DeviceOfflineWithName": "{0} has disconnected",
-  "DeviceOnlineWithName": "{0} is connected",
-  "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
-  "Favorites": "Favorites",
-  "Folders": "Folders",
-  "Games": "Games",
-  "Genres": "Genres",
-  "HeaderAlbumArtists": "Album Artists",
-  "HeaderCameraUploads": "Camera Uploads",
-  "HeaderContinueWatching": "Continue Watching",
-  "HeaderFavoriteAlbums": "Favorite Albums",
-  "HeaderFavoriteArtists": "Favorite Artists",
-  "HeaderFavoriteEpisodes": "Favorite Episodes",
-  "HeaderFavoriteShows": "Favorite Shows",
-  "HeaderFavoriteSongs": "Favorite Songs",
-  "HeaderLiveTV": "Live TV",
-  "HeaderNextUp": "Next Up",
-  "HeaderRecordingGroups": "Recording Groups",
-  "HomeVideos": "Home videos",
-  "Inherit": "Inherit",
-  "ItemAddedWithName": "{0} was added to the library",
-  "ItemRemovedWithName": "{0} was removed from the library",
-  "LabelIpAddressValue": "Ip address: {0}",
-  "LabelRunningTimeValue": "Running time: {0}",
-  "Latest": "Latest",
-  "MessageApplicationUpdated": "Jellyfin Server has been updated",
-  "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
-  "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
-  "MessageServerConfigurationUpdated": "Server configuration has been updated",
-  "MixedContent": "Mixed content",
-  "Movies": "Movies",
-  "Music": "Music",
-  "MusicVideos": "Music videos",
-  "NameInstallFailed": "{0} installation failed",
-  "NameSeasonNumber": "Season {0}",
-  "NameSeasonUnknown": "Season Unknown",
-  "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
-  "NotificationOptionApplicationUpdateAvailable": "Application update available",
-  "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-  "NotificationOptionAudioPlayback": "Audio playback started",
-  "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
-  "NotificationOptionCameraImageUploaded": "Camera image uploaded",
-  "NotificationOptionGamePlayback": "Game playback started",
-  "NotificationOptionGamePlaybackStopped": "Game playback stopped",
-  "NotificationOptionInstallationFailed": "Installation failure",
-  "NotificationOptionNewLibraryContent": "New content added",
-  "NotificationOptionPluginError": "Plugin failure",
-  "NotificationOptionPluginInstalled": "Plugin installed",
-  "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-  "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-  "NotificationOptionServerRestartRequired": "Server restart required",
-  "NotificationOptionTaskFailed": "Scheduled task failure",
-  "NotificationOptionUserLockedOut": "User locked out",
-  "NotificationOptionVideoPlayback": "Video playback started",
-  "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
-  "Photos": "Photos",
-  "Playlists": "Playlists",
-  "Plugin": "Plugin",
-  "PluginInstalledWithName": "{0} was installed",
-  "PluginUninstalledWithName": "{0} was uninstalled",
-  "PluginUpdatedWithName": "{0} was updated",
-  "ProviderValue": "Provider: {0}",
-  "ScheduledTaskFailedWithName": "{0} failed",
-  "ScheduledTaskStartedWithName": "{0} started",
-  "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
-  "Shows": "Shows",
-  "Songs": "Songs",
-  "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
-  "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
-  "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
-  "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
-  "Sync": "Sync",
-  "System": "System",
-  "TvShows": "TV Shows",
-  "User": "User",
-  "UserCreatedWithName": "User {0} has been created",
-  "UserDeletedWithName": "User {0} has been deleted",
-  "UserDownloadingItemWithValues": "{0} is downloading {1}",
-  "UserLockedOutWithName": "User {0} has been locked out",
-  "UserOfflineFromDevice": "{0} has disconnected from {1}",
-  "UserOnlineFromDevice": "{0} is online from {1}",
-  "UserPasswordChangedWithName": "Password has been changed for user {0}",
-  "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
-  "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
-  "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
-  "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
-  "ValueSpecialEpisodeName": "Special - {0}",
-  "VersionNumber": "版本{0}"
+    "Albums": "Albums",
+    "AppDeviceValues": "App: {0}, Device: {1}",
+    "Application": "Application",
+    "Artists": "Artists",
+    "AuthenticationSucceededWithUserName": "{0} successfully authenticated",
+    "Books": "Books",
+    "CameraImageUploadedFrom": "A new camera image has been uploaded from {0}",
+    "Channels": "Channels",
+    "ChapterNameValue": "Chapter {0}",
+    "Collections": "Collections",
+    "DeviceOfflineWithName": "{0} has disconnected",
+    "DeviceOnlineWithName": "{0} is connected",
+    "FailedLoginAttemptWithUserName": "Failed login attempt from {0}",
+    "Favorites": "Favorites",
+    "Folders": "Folders",
+    "Games": "Games",
+    "Genres": "Genres",
+    "HeaderAlbumArtists": "Album Artists",
+    "HeaderCameraUploads": "Camera Uploads",
+    "HeaderContinueWatching": "Continue Watching",
+    "HeaderFavoriteAlbums": "Favorite Albums",
+    "HeaderFavoriteArtists": "Favorite Artists",
+    "HeaderFavoriteEpisodes": "Favorite Episodes",
+    "HeaderFavoriteShows": "Favorite Shows",
+    "HeaderFavoriteSongs": "Favorite Songs",
+    "HeaderLiveTV": "Live TV",
+    "HeaderNextUp": "Next Up",
+    "HeaderRecordingGroups": "Recording Groups",
+    "HomeVideos": "Home videos",
+    "Inherit": "Inherit",
+    "ItemAddedWithName": "{0} was added to the library",
+    "ItemRemovedWithName": "{0} was removed from the library",
+    "LabelIpAddressValue": "Ip address: {0}",
+    "LabelRunningTimeValue": "Running time: {0}",
+    "Latest": "Latest",
+    "MessageApplicationUpdated": "Jellyfin Server has been updated",
+    "MessageApplicationUpdatedTo": "Jellyfin Server has been updated to {0}",
+    "MessageNamedServerConfigurationUpdatedWithValue": "Server configuration section {0} has been updated",
+    "MessageServerConfigurationUpdated": "Server configuration has been updated",
+    "MixedContent": "Mixed content",
+    "Movies": "Movies",
+    "Music": "Music",
+    "MusicVideos": "Music videos",
+    "NameInstallFailed": "{0} installation failed",
+    "NameSeasonNumber": "Season {0}",
+    "NameSeasonUnknown": "Season Unknown",
+    "NewVersionIsAvailable": "A new version of Jellyfin Server is available for download.",
+    "NotificationOptionApplicationUpdateAvailable": "Application update available",
+    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+    "NotificationOptionAudioPlayback": "Audio playback started",
+    "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+    "NotificationOptionCameraImageUploaded": "Camera image uploaded",
+    "NotificationOptionGamePlayback": "Game playback started",
+    "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+    "NotificationOptionInstallationFailed": "Installation failure",
+    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionPluginError": "Plugin failure",
+    "NotificationOptionPluginInstalled": "Plugin installed",
+    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionTaskFailed": "Scheduled task failure",
+    "NotificationOptionUserLockedOut": "User locked out",
+    "NotificationOptionVideoPlayback": "Video playback started",
+    "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+    "Photos": "Photos",
+    "Playlists": "Playlists",
+    "Plugin": "Plugin",
+    "PluginInstalledWithName": "{0} was installed",
+    "PluginUninstalledWithName": "{0} was uninstalled",
+    "PluginUpdatedWithName": "{0} was updated",
+    "ProviderValue": "Provider: {0}",
+    "ScheduledTaskFailedWithName": "{0} failed",
+    "ScheduledTaskStartedWithName": "{0} started",
+    "ServerNameNeedsToBeRestarted": "{0} needs to be restarted",
+    "Shows": "Shows",
+    "Songs": "Songs",
+    "StartupEmbyServerIsLoading": "Jellyfin Server is loading. Please try again shortly.",
+    "SubtitleDownloadFailureForItem": "Subtitles failed to download for {0}",
+    "SubtitleDownloadFailureFromForItem": "Subtitles failed to download from {0} for {1}",
+    "SubtitlesDownloadedForItem": "Subtitles downloaded for {0}",
+    "Sync": "Sync",
+    "System": "System",
+    "TvShows": "TV Shows",
+    "User": "User",
+    "UserCreatedWithName": "User {0} has been created",
+    "UserDeletedWithName": "User {0} has been deleted",
+    "UserDownloadingItemWithValues": "{0} is downloading {1}",
+    "UserLockedOutWithName": "User {0} has been locked out",
+    "UserOfflineFromDevice": "{0} has disconnected from {1}",
+    "UserOnlineFromDevice": "{0} is online from {1}",
+    "UserPasswordChangedWithName": "Password has been changed for user {0}",
+    "UserPolicyUpdatedWithName": "User policy has been updated for {0}",
+    "UserStartedPlayingItemWithValues": "{0} is playing {1} on {2}",
+    "UserStoppedPlayingItemWithValues": "{0} has finished playing {1} on {2}",
+    "ValueHasBeenAddedToLibrary": "{0} has been added to your media library",
+    "ValueSpecialEpisodeName": "Special - {0}",
+    "VersionNumber": "版本{0}"
 }

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/br.txt

@@ -3,4 +3,4 @@ BR-10,5
 BR-12,7
 BR-14,8
 BR-16,8
-BR-18,9
+BR-18,9

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/ca.txt

@@ -3,4 +3,4 @@ CA-PG,5
 CA-14A,7
 CA-A,8
 CA-18A,9
-CA-R,10
+CA-R,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/co.txt

@@ -5,4 +5,4 @@ CO-15,8
 CO-18,10
 CO-X,100
 CO-BANNED,15
-CO-E,15
+CO-E,15

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/dk.txt

@@ -1,4 +1,4 @@
 DA-A,1
 DA-7,5
 DA-11,6
-DA-15,8
+DA-15,8

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/es.txt

@@ -3,4 +3,4 @@ ES-APTA,1
 ES-7,3
 ES-12,6
 ES-16,8
-ES-18,11
+ES-18,11

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/fr.txt

@@ -2,4 +2,4 @@ FR-U,1
 FR-10,5
 FR-12,7
 FR-16,9
-FR-18,10
+FR-18,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/ie.txt

@@ -3,4 +3,4 @@ IE-PG,5
 IE-12A,7
 IE-15A,8
 IE-16,9
-IE-18,10
+IE-18,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/jp.txt

@@ -1,4 +1,4 @@
 JP-G,1
 JP-PG12,7
 JP-15+,8
-JP-18+,10
+JP-18+,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/kz.txt

@@ -3,4 +3,4 @@ KZ-БА,6
 KZ-Б14,7
 KZ-Е16,8
 KZ-Е18,10
-KZ-НА,15
+KZ-НА,15

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/mx.txt

@@ -3,4 +3,4 @@ MX-A,5
 MX-B,7
 MX-B-15,8
 MX-C,9
-MX-D,10
+MX-D,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/nl.txt

@@ -3,4 +3,4 @@ NL-MG6,2
 NL-6,3
 NL-9,5
 NL-12,6
-NL-16,8
+NL-16,8

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/nz.txt

@@ -8,4 +8,4 @@ NZ-RP16,9
 NZ-R16,9
 NZ-R18,10
 NZ-R,10
-NZ-MA,10
+NZ-MA,10

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/ro.txt

@@ -1 +1 @@
-RO-AG,1
+RO-AG,1

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/uk.txt

@@ -4,4 +4,4 @@ UK-12,7
 UK-12A,7
 UK-15,9
 UK-18,10
-UK-R18,15
+UK-R18,15

+ 1 - 1
Emby.Server.Implementations/Localization/Ratings/us.txt

@@ -20,4 +20,4 @@ RP,15
 UR,15
 NR,15
 X,15
-XXX,100
+XXX,100

+ 828 - 828
Emby.Server.Implementations/Localization/countries.json

@@ -1,830 +1,830 @@
 [
-  {
-    "DisplayName": "Afghanistan",
-    "Name": "AF",
-    "ThreeLetterISORegionName": "AFG",
-    "TwoLetterISORegionName": "AF"
-  },
-  {
-    "DisplayName": "Albania",
-    "Name": "AL",
-    "ThreeLetterISORegionName": "ALB",
-    "TwoLetterISORegionName": "AL"
-  },
-  {
-    "DisplayName": "Algeria",
-    "Name": "DZ",
-    "ThreeLetterISORegionName": "DZA",
-    "TwoLetterISORegionName": "DZ"
-  },
-  {
-    "DisplayName": "Argentina",
-    "Name": "AR",
-    "ThreeLetterISORegionName": "ARG",
-    "TwoLetterISORegionName": "AR"
-  },
-  {
-    "DisplayName": "Armenia",
-    "Name": "AM",
-    "ThreeLetterISORegionName": "ARM",
-    "TwoLetterISORegionName": "AM"
-  },
-  {
-    "DisplayName": "Australia",
-    "Name": "AU",
-    "ThreeLetterISORegionName": "AUS",
-    "TwoLetterISORegionName": "AU"
-  },
-  {
-    "DisplayName": "Austria",
-    "Name": "AT",
-    "ThreeLetterISORegionName": "AUT",
-    "TwoLetterISORegionName": "AT"
-  },
-  {
-    "DisplayName": "Azerbaijan",
-    "Name": "AZ",
-    "ThreeLetterISORegionName": "AZE",
-    "TwoLetterISORegionName": "AZ"
-  },
-  {
-    "DisplayName": "Bahrain",
-    "Name": "BH",
-    "ThreeLetterISORegionName": "BHR",
-    "TwoLetterISORegionName": "BH"
-  },
-  {
-    "DisplayName": "Bangladesh",
-    "Name": "BD",
-    "ThreeLetterISORegionName": "BGD",
-    "TwoLetterISORegionName": "BD"
-  },
-  {
-    "DisplayName": "Belarus",
-    "Name": "BY",
-    "ThreeLetterISORegionName": "BLR",
-    "TwoLetterISORegionName": "BY"
-  },
-  {
-    "DisplayName": "Belgium",
-    "Name": "BE",
-    "ThreeLetterISORegionName": "BEL",
-    "TwoLetterISORegionName": "BE"
-  },
-  {
-    "DisplayName": "Belize",
-    "Name": "BZ",
-    "ThreeLetterISORegionName": "BLZ",
-    "TwoLetterISORegionName": "BZ"
-  },
-  {
-    "DisplayName": "Bolivarian Republic of Venezuela",
-    "Name": "VE",
-    "ThreeLetterISORegionName": "VEN",
-    "TwoLetterISORegionName": "VE"
-  },
-  {
-    "DisplayName": "Bolivia",
-    "Name": "BO",
-    "ThreeLetterISORegionName": "BOL",
-    "TwoLetterISORegionName": "BO"
-  },
-  {
-    "DisplayName": "Bosnia and Herzegovina",
-    "Name": "BA",
-    "ThreeLetterISORegionName": "BIH",
-    "TwoLetterISORegionName": "BA"
-  },
-  {
-    "DisplayName": "Botswana",
-    "Name": "BW",
-    "ThreeLetterISORegionName": "BWA",
-    "TwoLetterISORegionName": "BW"
-  },
-  {
-    "DisplayName": "Brazil",
-    "Name": "BR",
-    "ThreeLetterISORegionName": "BRA",
-    "TwoLetterISORegionName": "BR"
-  },
-  {
-    "DisplayName": "Brunei Darussalam",
-    "Name": "BN",
-    "ThreeLetterISORegionName": "BRN",
-    "TwoLetterISORegionName": "BN"
-  },
-  {
-    "DisplayName": "Bulgaria",
-    "Name": "BG",
-    "ThreeLetterISORegionName": "BGR",
-    "TwoLetterISORegionName": "BG"
-  },
-  {
-    "DisplayName": "Cambodia",
-    "Name": "KH",
-    "ThreeLetterISORegionName": "KHM",
-    "TwoLetterISORegionName": "KH"
-  },
-  {
-    "DisplayName": "Cameroon",
-    "Name": "CM",
-    "ThreeLetterISORegionName": "CMR",
-    "TwoLetterISORegionName": "CM"
-  },
-  {
-    "DisplayName": "Canada",
-    "Name": "CA",
-    "ThreeLetterISORegionName": "CAN",
-    "TwoLetterISORegionName": "CA"
-  },
-  {
-    "DisplayName": "Caribbean",
-    "Name": "029",
-    "ThreeLetterISORegionName": "029",
-    "TwoLetterISORegionName": "029"
-  },
-  {
-    "DisplayName": "Chile",
-    "Name": "CL",
-    "ThreeLetterISORegionName": "CHL",
-    "TwoLetterISORegionName": "CL"
-  },
-  {
-    "DisplayName": "Colombia",
-    "Name": "CO",
-    "ThreeLetterISORegionName": "COL",
-    "TwoLetterISORegionName": "CO"
-  },
-  {
-    "DisplayName": "Congo [DRC]",
-    "Name": "CD",
-    "ThreeLetterISORegionName": "COD",
-    "TwoLetterISORegionName": "CD"
-  },
-  {
-    "DisplayName": "Costa Rica",
-    "Name": "CR",
-    "ThreeLetterISORegionName": "CRI",
-    "TwoLetterISORegionName": "CR"
-  },
-  {
-    "DisplayName": "Croatia",
-    "Name": "HR",
-    "ThreeLetterISORegionName": "HRV",
-    "TwoLetterISORegionName": "HR"
-  },
-  {
-    "DisplayName": "Czech Republic",
-    "Name": "CZ",
-    "ThreeLetterISORegionName": "CZE",
-    "TwoLetterISORegionName": "CZ"
-  },
-  {
-    "DisplayName": "Denmark",
-    "Name": "DK",
-    "ThreeLetterISORegionName": "DNK",
-    "TwoLetterISORegionName": "DK"
-  },
-  {
-    "DisplayName": "Dominican Republic",
-    "Name": "DO",
-    "ThreeLetterISORegionName": "DOM",
-    "TwoLetterISORegionName": "DO"
-  },
-  {
-    "DisplayName": "Ecuador",
-    "Name": "EC",
-    "ThreeLetterISORegionName": "ECU",
-    "TwoLetterISORegionName": "EC"
-  },
-  {
-    "DisplayName": "Egypt",
-    "Name": "EG",
-    "ThreeLetterISORegionName": "EGY",
-    "TwoLetterISORegionName": "EG"
-  },
-  {
-    "DisplayName": "El Salvador",
-    "Name": "SV",
-    "ThreeLetterISORegionName": "SLV",
-    "TwoLetterISORegionName": "SV"
-  },
-  {
-    "DisplayName": "Eritrea",
-    "Name": "ER",
-    "ThreeLetterISORegionName": "ERI",
-    "TwoLetterISORegionName": "ER"
-  },
-  {
-    "DisplayName": "Estonia",
-    "Name": "EE",
-    "ThreeLetterISORegionName": "EST",
-    "TwoLetterISORegionName": "EE"
-  },
-  {
-    "DisplayName": "Ethiopia",
-    "Name": "ET",
-    "ThreeLetterISORegionName": "ETH",
-    "TwoLetterISORegionName": "ET"
-  },
-  {
-    "DisplayName": "Faroe Islands",
-    "Name": "FO",
-    "ThreeLetterISORegionName": "FRO",
-    "TwoLetterISORegionName": "FO"
-  },
-  {
-    "DisplayName": "Finland",
-    "Name": "FI",
-    "ThreeLetterISORegionName": "FIN",
-    "TwoLetterISORegionName": "FI"
-  },
-  {
-    "DisplayName": "France",
-    "Name": "FR",
-    "ThreeLetterISORegionName": "FRA",
-    "TwoLetterISORegionName": "FR"
-  },
-  {
-    "DisplayName": "Georgia",
-    "Name": "GE",
-    "ThreeLetterISORegionName": "GEO",
-    "TwoLetterISORegionName": "GE"
-  },
-  {
-    "DisplayName": "Germany",
-    "Name": "DE",
-    "ThreeLetterISORegionName": "DEU",
-    "TwoLetterISORegionName": "DE"
-  },
-  {
-    "DisplayName": "Greece",
-    "Name": "GR",
-    "ThreeLetterISORegionName": "GRC",
-    "TwoLetterISORegionName": "GR"
-  },
-  {
-    "DisplayName": "Greenland",
-    "Name": "GL",
-    "ThreeLetterISORegionName": "GRL",
-    "TwoLetterISORegionName": "GL"
-  },
-  {
-    "DisplayName": "Guatemala",
-    "Name": "GT",
-    "ThreeLetterISORegionName": "GTM",
-    "TwoLetterISORegionName": "GT"
-  },
-  {
-    "DisplayName": "Haiti",
-    "Name": "HT",
-    "ThreeLetterISORegionName": "HTI",
-    "TwoLetterISORegionName": "HT"
-  },
-  {
-    "DisplayName": "Honduras",
-    "Name": "HN",
-    "ThreeLetterISORegionName": "HND",
-    "TwoLetterISORegionName": "HN"
-  },
-  {
-    "DisplayName": "Hong Kong S.A.R.",
-    "Name": "HK",
-    "ThreeLetterISORegionName": "HKG",
-    "TwoLetterISORegionName": "HK"
-  },
-  {
-    "DisplayName": "Hungary",
-    "Name": "HU",
-    "ThreeLetterISORegionName": "HUN",
-    "TwoLetterISORegionName": "HU"
-  },
-  {
-    "DisplayName": "Iceland",
-    "Name": "IS",
-    "ThreeLetterISORegionName": "ISL",
-    "TwoLetterISORegionName": "IS"
-  },
-  {
-    "DisplayName": "India",
-    "Name": "IN",
-    "ThreeLetterISORegionName": "IND",
-    "TwoLetterISORegionName": "IN"
-  },
-  {
-    "DisplayName": "Indonesia",
-    "Name": "ID",
-    "ThreeLetterISORegionName": "IDN",
-    "TwoLetterISORegionName": "ID"
-  },
-  {
-    "DisplayName": "Iran",
-    "Name": "IR",
-    "ThreeLetterISORegionName": "IRN",
-    "TwoLetterISORegionName": "IR"
-  },
-  {
-    "DisplayName": "Iraq",
-    "Name": "IQ",
-    "ThreeLetterISORegionName": "IRQ",
-    "TwoLetterISORegionName": "IQ"
-  },
-  {
-    "DisplayName": "Ireland",
-    "Name": "IE",
-    "ThreeLetterISORegionName": "IRL",
-    "TwoLetterISORegionName": "IE"
-  },
-  {
-    "DisplayName": "Islamic Republic of Pakistan",
-    "Name": "PK",
-    "ThreeLetterISORegionName": "PAK",
-    "TwoLetterISORegionName": "PK"
-  },
-  {
-    "DisplayName": "Israel",
-    "Name": "IL",
-    "ThreeLetterISORegionName": "ISR",
-    "TwoLetterISORegionName": "IL"
-  },
-  {
-    "DisplayName": "Italy",
-    "Name": "IT",
-    "ThreeLetterISORegionName": "ITA",
-    "TwoLetterISORegionName": "IT"
-  },
-  {
-    "DisplayName": "Ivory Coast",
-    "Name": "CI",
-    "ThreeLetterISORegionName": "CIV",
-    "TwoLetterISORegionName": "CI"
-  },
-  {
-    "DisplayName": "Jamaica",
-    "Name": "JM",
-    "ThreeLetterISORegionName": "JAM",
-    "TwoLetterISORegionName": "JM"
-  },
-  {
-    "DisplayName": "Japan",
-    "Name": "JP",
-    "ThreeLetterISORegionName": "JPN",
-    "TwoLetterISORegionName": "JP"
-  },
-  {
-    "DisplayName": "Jordan",
-    "Name": "JO",
-    "ThreeLetterISORegionName": "JOR",
-    "TwoLetterISORegionName": "JO"
-  },
-  {
-    "DisplayName": "Kazakhstan",
-    "Name": "KZ",
-    "ThreeLetterISORegionName": "KAZ",
-    "TwoLetterISORegionName": "KZ"
-  },
-  {
-    "DisplayName": "Kenya",
-    "Name": "KE",
-    "ThreeLetterISORegionName": "KEN",
-    "TwoLetterISORegionName": "KE"
-  },
-  {
-    "DisplayName": "Korea",
-    "Name": "KR",
-    "ThreeLetterISORegionName": "KOR",
-    "TwoLetterISORegionName": "KR"
-  },
-  {
-    "DisplayName": "Kuwait",
-    "Name": "KW",
-    "ThreeLetterISORegionName": "KWT",
-    "TwoLetterISORegionName": "KW"
-  },
-  {
-    "DisplayName": "Kyrgyzstan",
-    "Name": "KG",
-    "ThreeLetterISORegionName": "KGZ",
-    "TwoLetterISORegionName": "KG"
-  },
-  {
-    "DisplayName": "Lao P.D.R.",
-    "Name": "LA",
-    "ThreeLetterISORegionName": "LAO",
-    "TwoLetterISORegionName": "LA"
-  },
-  {
-    "DisplayName": "Latin America",
-    "Name": "419",
-    "ThreeLetterISORegionName": "419",
-    "TwoLetterISORegionName": "419"
-  },
-  {
-    "DisplayName": "Latvia",
-    "Name": "LV",
-    "ThreeLetterISORegionName": "LVA",
-    "TwoLetterISORegionName": "LV"
-  },
-  {
-    "DisplayName": "Lebanon",
-    "Name": "LB",
-    "ThreeLetterISORegionName": "LBN",
-    "TwoLetterISORegionName": "LB"
-  },
-  {
-    "DisplayName": "Libya",
-    "Name": "LY",
-    "ThreeLetterISORegionName": "LBY",
-    "TwoLetterISORegionName": "LY"
-  },
-  {
-    "DisplayName": "Liechtenstein",
-    "Name": "LI",
-    "ThreeLetterISORegionName": "LIE",
-    "TwoLetterISORegionName": "LI"
-  },
-  {
-    "DisplayName": "Lithuania",
-    "Name": "LT",
-    "ThreeLetterISORegionName": "LTU",
-    "TwoLetterISORegionName": "LT"
-  },
-  {
-    "DisplayName": "Luxembourg",
-    "Name": "LU",
-    "ThreeLetterISORegionName": "LUX",
-    "TwoLetterISORegionName": "LU"
-  },
-  {
-    "DisplayName": "Macao S.A.R.",
-    "Name": "MO",
-    "ThreeLetterISORegionName": "MAC",
-    "TwoLetterISORegionName": "MO"
-  },
-  {
-    "DisplayName": "Macedonia (FYROM)",
-    "Name": "MK",
-    "ThreeLetterISORegionName": "MKD",
-    "TwoLetterISORegionName": "MK"
-  },
-  {
-    "DisplayName": "Malaysia",
-    "Name": "MY",
-    "ThreeLetterISORegionName": "MYS",
-    "TwoLetterISORegionName": "MY"
-  },
-  {
-    "DisplayName": "Maldives",
-    "Name": "MV",
-    "ThreeLetterISORegionName": "MDV",
-    "TwoLetterISORegionName": "MV"
-  },
-  {
-    "DisplayName": "Mali",
-    "Name": "ML",
-    "ThreeLetterISORegionName": "MLI",
-    "TwoLetterISORegionName": "ML"
-  },
-  {
-    "DisplayName": "Malta",
-    "Name": "MT",
-    "ThreeLetterISORegionName": "MLT",
-    "TwoLetterISORegionName": "MT"
-  },
-  {
-    "DisplayName": "Mexico",
-    "Name": "MX",
-    "ThreeLetterISORegionName": "MEX",
-    "TwoLetterISORegionName": "MX"
-  },
-  {
-    "DisplayName": "Mongolia",
-    "Name": "MN",
-    "ThreeLetterISORegionName": "MNG",
-    "TwoLetterISORegionName": "MN"
-  },
-  {
-    "DisplayName": "Montenegro",
-    "Name": "ME",
-    "ThreeLetterISORegionName": "MNE",
-    "TwoLetterISORegionName": "ME"
-  },
-  {
-    "DisplayName": "Morocco",
-    "Name": "MA",
-    "ThreeLetterISORegionName": "MAR",
-    "TwoLetterISORegionName": "MA"
-  },
-  {
-    "DisplayName": "Nepal",
-    "Name": "NP",
-    "ThreeLetterISORegionName": "NPL",
-    "TwoLetterISORegionName": "NP"
-  },
-  {
-    "DisplayName": "Netherlands",
-    "Name": "NL",
-    "ThreeLetterISORegionName": "NLD",
-    "TwoLetterISORegionName": "NL"
-  },
-  {
-    "DisplayName": "New Zealand",
-    "Name": "NZ",
-    "ThreeLetterISORegionName": "NZL",
-    "TwoLetterISORegionName": "NZ"
-  },
-  {
-    "DisplayName": "Nicaragua",
-    "Name": "NI",
-    "ThreeLetterISORegionName": "NIC",
-    "TwoLetterISORegionName": "NI"
-  },
-  {
-    "DisplayName": "Nigeria",
-    "Name": "NG",
-    "ThreeLetterISORegionName": "NGA",
-    "TwoLetterISORegionName": "NG"
-  },
-  {
-    "DisplayName": "Norway",
-    "Name": "NO",
-    "ThreeLetterISORegionName": "NOR",
-    "TwoLetterISORegionName": "NO"
-  },
-  {
-    "DisplayName": "Oman",
-    "Name": "OM",
-    "ThreeLetterISORegionName": "OMN",
-    "TwoLetterISORegionName": "OM"
-  },
-  {
-    "DisplayName": "Panama",
-    "Name": "PA",
-    "ThreeLetterISORegionName": "PAN",
-    "TwoLetterISORegionName": "PA"
-  },
-  {
-    "DisplayName": "Paraguay",
-    "Name": "PY",
-    "ThreeLetterISORegionName": "PRY",
-    "TwoLetterISORegionName": "PY"
-  },
-  {
-    "DisplayName": "People's Republic of China",
-    "Name": "CN",
-    "ThreeLetterISORegionName": "CHN",
-    "TwoLetterISORegionName": "CN"
-  },
-  {
-    "DisplayName": "Peru",
-    "Name": "PE",
-    "ThreeLetterISORegionName": "PER",
-    "TwoLetterISORegionName": "PE"
-  },
-  {
-    "DisplayName": "Philippines",
-    "Name": "PH",
-    "ThreeLetterISORegionName": "PHL",
-    "TwoLetterISORegionName": "PH"
-  },
-  {
-    "DisplayName": "Poland",
-    "Name": "PL",
-    "ThreeLetterISORegionName": "POL",
-    "TwoLetterISORegionName": "PL"
-  },
-  {
-    "DisplayName": "Portugal",
-    "Name": "PT",
-    "ThreeLetterISORegionName": "PRT",
-    "TwoLetterISORegionName": "PT"
-  },
-  {
-    "DisplayName": "Principality of Monaco",
-    "Name": "MC",
-    "ThreeLetterISORegionName": "MCO",
-    "TwoLetterISORegionName": "MC"
-  },
-  {
-    "DisplayName": "Puerto Rico",
-    "Name": "PR",
-    "ThreeLetterISORegionName": "PRI",
-    "TwoLetterISORegionName": "PR"
-  },
-  {
-    "DisplayName": "Qatar",
-    "Name": "QA",
-    "ThreeLetterISORegionName": "QAT",
-    "TwoLetterISORegionName": "QA"
-  },
-  {
-    "DisplayName": "Republica Moldova",
-    "Name": "MD",
-    "ThreeLetterISORegionName": "MDA",
-    "TwoLetterISORegionName": "MD"
-  },
-  {
-    "DisplayName": "Réunion",
-    "Name": "RE",
-    "ThreeLetterISORegionName": "REU",
-    "TwoLetterISORegionName": "RE"
-  },
-  {
-    "DisplayName": "Romania",
-    "Name": "RO",
-    "ThreeLetterISORegionName": "ROU",
-    "TwoLetterISORegionName": "RO"
-  },
-  {
-    "DisplayName": "Russia",
-    "Name": "RU",
-    "ThreeLetterISORegionName": "RUS",
-    "TwoLetterISORegionName": "RU"
-  },
-  {
-    "DisplayName": "Rwanda",
-    "Name": "RW",
-    "ThreeLetterISORegionName": "RWA",
-    "TwoLetterISORegionName": "RW"
-  },
-  {
-    "DisplayName": "Saudi Arabia",
-    "Name": "SA",
-    "ThreeLetterISORegionName": "SAU",
-    "TwoLetterISORegionName": "SA"
-  },
-  {
-    "DisplayName": "Senegal",
-    "Name": "SN",
-    "ThreeLetterISORegionName": "SEN",
-    "TwoLetterISORegionName": "SN"
-  },
-  {
-    "DisplayName": "Serbia",
-    "Name": "RS",
-    "ThreeLetterISORegionName": "SRB",
-    "TwoLetterISORegionName": "RS"
-  },
-  {
-    "DisplayName": "Serbia and Montenegro (Former)",
-    "Name": "CS",
-    "ThreeLetterISORegionName": "SCG",
-    "TwoLetterISORegionName": "CS"
-  },
-  {
-    "DisplayName": "Singapore",
-    "Name": "SG",
-    "ThreeLetterISORegionName": "SGP",
-    "TwoLetterISORegionName": "SG"
-  },
-  {
-    "DisplayName": "Slovakia",
-    "Name": "SK",
-    "ThreeLetterISORegionName": "SVK",
-    "TwoLetterISORegionName": "SK"
-  },
-  {
-    "DisplayName": "Slovenia",
-    "Name": "SI",
-    "ThreeLetterISORegionName": "SVN",
-    "TwoLetterISORegionName": "SI"
-  },
-  {
-    "DisplayName": "Soomaaliya",
-    "Name": "SO",
-    "ThreeLetterISORegionName": "SOM",
-    "TwoLetterISORegionName": "SO"
-  },
-  {
-    "DisplayName": "South Africa",
-    "Name": "ZA",
-    "ThreeLetterISORegionName": "ZAF",
-    "TwoLetterISORegionName": "ZA"
-  },
-  {
-    "DisplayName": "Spain",
-    "Name": "ES",
-    "ThreeLetterISORegionName": "ESP",
-    "TwoLetterISORegionName": "ES"
-  },
-  {
-    "DisplayName": "Sri Lanka",
-    "Name": "LK",
-    "ThreeLetterISORegionName": "LKA",
-    "TwoLetterISORegionName": "LK"
-  },
-  {
-    "DisplayName": "Sweden",
-    "Name": "SE",
-    "ThreeLetterISORegionName": "SWE",
-    "TwoLetterISORegionName": "SE"
-  },
-  {
-    "DisplayName": "Switzerland",
-    "Name": "CH",
-    "ThreeLetterISORegionName": "CHE",
-    "TwoLetterISORegionName": "CH"
-  },
-  {
-    "DisplayName": "Syria",
-    "Name": "SY",
-    "ThreeLetterISORegionName": "SYR",
-    "TwoLetterISORegionName": "SY"
-  },
-  {
-    "DisplayName": "Taiwan",
-    "Name": "TW",
-    "ThreeLetterISORegionName": "TWN",
-    "TwoLetterISORegionName": "TW"
-  },
-  {
-    "DisplayName": "Tajikistan",
-    "Name": "TJ",
-    "ThreeLetterISORegionName": "TAJ",
-    "TwoLetterISORegionName": "TJ"
-  },
-  {
-    "DisplayName": "Thailand",
-    "Name": "TH",
-    "ThreeLetterISORegionName": "THA",
-    "TwoLetterISORegionName": "TH"
-  },
-  {
-    "DisplayName": "Trinidad and Tobago",
-    "Name": "TT",
-    "ThreeLetterISORegionName": "TTO",
-    "TwoLetterISORegionName": "TT"
-  },
-  {
-    "DisplayName": "Tunisia",
-    "Name": "TN",
-    "ThreeLetterISORegionName": "TUN",
-    "TwoLetterISORegionName": "TN"
-  },
-  {
-    "DisplayName": "Turkey",
-    "Name": "TR",
-    "ThreeLetterISORegionName": "TUR",
-    "TwoLetterISORegionName": "TR"
-  },
-  {
-    "DisplayName": "Turkmenistan",
-    "Name": "TM",
-    "ThreeLetterISORegionName": "TKM",
-    "TwoLetterISORegionName": "TM"
-  },
-  {
-    "DisplayName": "U.A.E.",
-    "Name": "AE",
-    "ThreeLetterISORegionName": "ARE",
-    "TwoLetterISORegionName": "AE"
-  },
-  {
-    "DisplayName": "Ukraine",
-    "Name": "UA",
-    "ThreeLetterISORegionName": "UKR",
-    "TwoLetterISORegionName": "UA"
-  },
-  {
-    "DisplayName": "United Kingdom",
-    "Name": "GB",
-    "ThreeLetterISORegionName": "GBR",
-    "TwoLetterISORegionName": "GB"
-  },
-  {
-    "DisplayName": "United States",
-    "Name": "US",
-    "ThreeLetterISORegionName": "USA",
-    "TwoLetterISORegionName": "US"
-  },
-  {
-    "DisplayName": "Uruguay",
-    "Name": "UY",
-    "ThreeLetterISORegionName": "URY",
-    "TwoLetterISORegionName": "UY"
-  },
-  {
-    "DisplayName": "Uzbekistan",
-    "Name": "UZ",
-    "ThreeLetterISORegionName": "UZB",
-    "TwoLetterISORegionName": "UZ"
-  },
-  {
-    "DisplayName": "Vietnam",
-    "Name": "VN",
-    "ThreeLetterISORegionName": "VNM",
-    "TwoLetterISORegionName": "VN"
-  },
-  {
-    "DisplayName": "Yemen",
-    "Name": "YE",
-    "ThreeLetterISORegionName": "YEM",
-    "TwoLetterISORegionName": "YE"
-  },
-  {
-    "DisplayName": "Zimbabwe",
-    "Name": "ZW",
-    "ThreeLetterISORegionName": "ZWE",
-    "TwoLetterISORegionName": "ZW"
-  }
+    {
+        "DisplayName": "Afghanistan",
+        "Name": "AF",
+        "ThreeLetterISORegionName": "AFG",
+        "TwoLetterISORegionName": "AF"
+    },
+    {
+        "DisplayName": "Albania",
+        "Name": "AL",
+        "ThreeLetterISORegionName": "ALB",
+        "TwoLetterISORegionName": "AL"
+    },
+    {
+        "DisplayName": "Algeria",
+        "Name": "DZ",
+        "ThreeLetterISORegionName": "DZA",
+        "TwoLetterISORegionName": "DZ"
+    },
+    {
+        "DisplayName": "Argentina",
+        "Name": "AR",
+        "ThreeLetterISORegionName": "ARG",
+        "TwoLetterISORegionName": "AR"
+    },
+    {
+        "DisplayName": "Armenia",
+        "Name": "AM",
+        "ThreeLetterISORegionName": "ARM",
+        "TwoLetterISORegionName": "AM"
+    },
+    {
+        "DisplayName": "Australia",
+        "Name": "AU",
+        "ThreeLetterISORegionName": "AUS",
+        "TwoLetterISORegionName": "AU"
+    },
+    {
+        "DisplayName": "Austria",
+        "Name": "AT",
+        "ThreeLetterISORegionName": "AUT",
+        "TwoLetterISORegionName": "AT"
+    },
+    {
+        "DisplayName": "Azerbaijan",
+        "Name": "AZ",
+        "ThreeLetterISORegionName": "AZE",
+        "TwoLetterISORegionName": "AZ"
+    },
+    {
+        "DisplayName": "Bahrain",
+        "Name": "BH",
+        "ThreeLetterISORegionName": "BHR",
+        "TwoLetterISORegionName": "BH"
+    },
+    {
+        "DisplayName": "Bangladesh",
+        "Name": "BD",
+        "ThreeLetterISORegionName": "BGD",
+        "TwoLetterISORegionName": "BD"
+    },
+    {
+        "DisplayName": "Belarus",
+        "Name": "BY",
+        "ThreeLetterISORegionName": "BLR",
+        "TwoLetterISORegionName": "BY"
+    },
+    {
+        "DisplayName": "Belgium",
+        "Name": "BE",
+        "ThreeLetterISORegionName": "BEL",
+        "TwoLetterISORegionName": "BE"
+    },
+    {
+        "DisplayName": "Belize",
+        "Name": "BZ",
+        "ThreeLetterISORegionName": "BLZ",
+        "TwoLetterISORegionName": "BZ"
+    },
+    {
+        "DisplayName": "Bolivarian Republic of Venezuela",
+        "Name": "VE",
+        "ThreeLetterISORegionName": "VEN",
+        "TwoLetterISORegionName": "VE"
+    },
+    {
+        "DisplayName": "Bolivia",
+        "Name": "BO",
+        "ThreeLetterISORegionName": "BOL",
+        "TwoLetterISORegionName": "BO"
+    },
+    {
+        "DisplayName": "Bosnia and Herzegovina",
+        "Name": "BA",
+        "ThreeLetterISORegionName": "BIH",
+        "TwoLetterISORegionName": "BA"
+    },
+    {
+        "DisplayName": "Botswana",
+        "Name": "BW",
+        "ThreeLetterISORegionName": "BWA",
+        "TwoLetterISORegionName": "BW"
+    },
+    {
+        "DisplayName": "Brazil",
+        "Name": "BR",
+        "ThreeLetterISORegionName": "BRA",
+        "TwoLetterISORegionName": "BR"
+    },
+    {
+        "DisplayName": "Brunei Darussalam",
+        "Name": "BN",
+        "ThreeLetterISORegionName": "BRN",
+        "TwoLetterISORegionName": "BN"
+    },
+    {
+        "DisplayName": "Bulgaria",
+        "Name": "BG",
+        "ThreeLetterISORegionName": "BGR",
+        "TwoLetterISORegionName": "BG"
+    },
+    {
+        "DisplayName": "Cambodia",
+        "Name": "KH",
+        "ThreeLetterISORegionName": "KHM",
+        "TwoLetterISORegionName": "KH"
+    },
+    {
+        "DisplayName": "Cameroon",
+        "Name": "CM",
+        "ThreeLetterISORegionName": "CMR",
+        "TwoLetterISORegionName": "CM"
+    },
+    {
+        "DisplayName": "Canada",
+        "Name": "CA",
+        "ThreeLetterISORegionName": "CAN",
+        "TwoLetterISORegionName": "CA"
+    },
+    {
+        "DisplayName": "Caribbean",
+        "Name": "029",
+        "ThreeLetterISORegionName": "029",
+        "TwoLetterISORegionName": "029"
+    },
+    {
+        "DisplayName": "Chile",
+        "Name": "CL",
+        "ThreeLetterISORegionName": "CHL",
+        "TwoLetterISORegionName": "CL"
+    },
+    {
+        "DisplayName": "Colombia",
+        "Name": "CO",
+        "ThreeLetterISORegionName": "COL",
+        "TwoLetterISORegionName": "CO"
+    },
+    {
+        "DisplayName": "Congo [DRC]",
+        "Name": "CD",
+        "ThreeLetterISORegionName": "COD",
+        "TwoLetterISORegionName": "CD"
+    },
+    {
+        "DisplayName": "Costa Rica",
+        "Name": "CR",
+        "ThreeLetterISORegionName": "CRI",
+        "TwoLetterISORegionName": "CR"
+    },
+    {
+        "DisplayName": "Croatia",
+        "Name": "HR",
+        "ThreeLetterISORegionName": "HRV",
+        "TwoLetterISORegionName": "HR"
+    },
+    {
+        "DisplayName": "Czech Republic",
+        "Name": "CZ",
+        "ThreeLetterISORegionName": "CZE",
+        "TwoLetterISORegionName": "CZ"
+    },
+    {
+        "DisplayName": "Denmark",
+        "Name": "DK",
+        "ThreeLetterISORegionName": "DNK",
+        "TwoLetterISORegionName": "DK"
+    },
+    {
+        "DisplayName": "Dominican Republic",
+        "Name": "DO",
+        "ThreeLetterISORegionName": "DOM",
+        "TwoLetterISORegionName": "DO"
+    },
+    {
+        "DisplayName": "Ecuador",
+        "Name": "EC",
+        "ThreeLetterISORegionName": "ECU",
+        "TwoLetterISORegionName": "EC"
+    },
+    {
+        "DisplayName": "Egypt",
+        "Name": "EG",
+        "ThreeLetterISORegionName": "EGY",
+        "TwoLetterISORegionName": "EG"
+    },
+    {
+        "DisplayName": "El Salvador",
+        "Name": "SV",
+        "ThreeLetterISORegionName": "SLV",
+        "TwoLetterISORegionName": "SV"
+    },
+    {
+        "DisplayName": "Eritrea",
+        "Name": "ER",
+        "ThreeLetterISORegionName": "ERI",
+        "TwoLetterISORegionName": "ER"
+    },
+    {
+        "DisplayName": "Estonia",
+        "Name": "EE",
+        "ThreeLetterISORegionName": "EST",
+        "TwoLetterISORegionName": "EE"
+    },
+    {
+        "DisplayName": "Ethiopia",
+        "Name": "ET",
+        "ThreeLetterISORegionName": "ETH",
+        "TwoLetterISORegionName": "ET"
+    },
+    {
+        "DisplayName": "Faroe Islands",
+        "Name": "FO",
+        "ThreeLetterISORegionName": "FRO",
+        "TwoLetterISORegionName": "FO"
+    },
+    {
+        "DisplayName": "Finland",
+        "Name": "FI",
+        "ThreeLetterISORegionName": "FIN",
+        "TwoLetterISORegionName": "FI"
+    },
+    {
+        "DisplayName": "France",
+        "Name": "FR",
+        "ThreeLetterISORegionName": "FRA",
+        "TwoLetterISORegionName": "FR"
+    },
+    {
+        "DisplayName": "Georgia",
+        "Name": "GE",
+        "ThreeLetterISORegionName": "GEO",
+        "TwoLetterISORegionName": "GE"
+    },
+    {
+        "DisplayName": "Germany",
+        "Name": "DE",
+        "ThreeLetterISORegionName": "DEU",
+        "TwoLetterISORegionName": "DE"
+    },
+    {
+        "DisplayName": "Greece",
+        "Name": "GR",
+        "ThreeLetterISORegionName": "GRC",
+        "TwoLetterISORegionName": "GR"
+    },
+    {
+        "DisplayName": "Greenland",
+        "Name": "GL",
+        "ThreeLetterISORegionName": "GRL",
+        "TwoLetterISORegionName": "GL"
+    },
+    {
+        "DisplayName": "Guatemala",
+        "Name": "GT",
+        "ThreeLetterISORegionName": "GTM",
+        "TwoLetterISORegionName": "GT"
+    },
+    {
+        "DisplayName": "Haiti",
+        "Name": "HT",
+        "ThreeLetterISORegionName": "HTI",
+        "TwoLetterISORegionName": "HT"
+    },
+    {
+        "DisplayName": "Honduras",
+        "Name": "HN",
+        "ThreeLetterISORegionName": "HND",
+        "TwoLetterISORegionName": "HN"
+    },
+    {
+        "DisplayName": "Hong Kong S.A.R.",
+        "Name": "HK",
+        "ThreeLetterISORegionName": "HKG",
+        "TwoLetterISORegionName": "HK"
+    },
+    {
+        "DisplayName": "Hungary",
+        "Name": "HU",
+        "ThreeLetterISORegionName": "HUN",
+        "TwoLetterISORegionName": "HU"
+    },
+    {
+        "DisplayName": "Iceland",
+        "Name": "IS",
+        "ThreeLetterISORegionName": "ISL",
+        "TwoLetterISORegionName": "IS"
+    },
+    {
+        "DisplayName": "India",
+        "Name": "IN",
+        "ThreeLetterISORegionName": "IND",
+        "TwoLetterISORegionName": "IN"
+    },
+    {
+        "DisplayName": "Indonesia",
+        "Name": "ID",
+        "ThreeLetterISORegionName": "IDN",
+        "TwoLetterISORegionName": "ID"
+    },
+    {
+        "DisplayName": "Iran",
+        "Name": "IR",
+        "ThreeLetterISORegionName": "IRN",
+        "TwoLetterISORegionName": "IR"
+    },
+    {
+        "DisplayName": "Iraq",
+        "Name": "IQ",
+        "ThreeLetterISORegionName": "IRQ",
+        "TwoLetterISORegionName": "IQ"
+    },
+    {
+        "DisplayName": "Ireland",
+        "Name": "IE",
+        "ThreeLetterISORegionName": "IRL",
+        "TwoLetterISORegionName": "IE"
+    },
+    {
+        "DisplayName": "Islamic Republic of Pakistan",
+        "Name": "PK",
+        "ThreeLetterISORegionName": "PAK",
+        "TwoLetterISORegionName": "PK"
+    },
+    {
+        "DisplayName": "Israel",
+        "Name": "IL",
+        "ThreeLetterISORegionName": "ISR",
+        "TwoLetterISORegionName": "IL"
+    },
+    {
+        "DisplayName": "Italy",
+        "Name": "IT",
+        "ThreeLetterISORegionName": "ITA",
+        "TwoLetterISORegionName": "IT"
+    },
+    {
+        "DisplayName": "Ivory Coast",
+        "Name": "CI",
+        "ThreeLetterISORegionName": "CIV",
+        "TwoLetterISORegionName": "CI"
+    },
+    {
+        "DisplayName": "Jamaica",
+        "Name": "JM",
+        "ThreeLetterISORegionName": "JAM",
+        "TwoLetterISORegionName": "JM"
+    },
+    {
+        "DisplayName": "Japan",
+        "Name": "JP",
+        "ThreeLetterISORegionName": "JPN",
+        "TwoLetterISORegionName": "JP"
+    },
+    {
+        "DisplayName": "Jordan",
+        "Name": "JO",
+        "ThreeLetterISORegionName": "JOR",
+        "TwoLetterISORegionName": "JO"
+    },
+    {
+        "DisplayName": "Kazakhstan",
+        "Name": "KZ",
+        "ThreeLetterISORegionName": "KAZ",
+        "TwoLetterISORegionName": "KZ"
+    },
+    {
+        "DisplayName": "Kenya",
+        "Name": "KE",
+        "ThreeLetterISORegionName": "KEN",
+        "TwoLetterISORegionName": "KE"
+    },
+    {
+        "DisplayName": "Korea",
+        "Name": "KR",
+        "ThreeLetterISORegionName": "KOR",
+        "TwoLetterISORegionName": "KR"
+    },
+    {
+        "DisplayName": "Kuwait",
+        "Name": "KW",
+        "ThreeLetterISORegionName": "KWT",
+        "TwoLetterISORegionName": "KW"
+    },
+    {
+        "DisplayName": "Kyrgyzstan",
+        "Name": "KG",
+        "ThreeLetterISORegionName": "KGZ",
+        "TwoLetterISORegionName": "KG"
+    },
+    {
+        "DisplayName": "Lao P.D.R.",
+        "Name": "LA",
+        "ThreeLetterISORegionName": "LAO",
+        "TwoLetterISORegionName": "LA"
+    },
+    {
+        "DisplayName": "Latin America",
+        "Name": "419",
+        "ThreeLetterISORegionName": "419",
+        "TwoLetterISORegionName": "419"
+    },
+    {
+        "DisplayName": "Latvia",
+        "Name": "LV",
+        "ThreeLetterISORegionName": "LVA",
+        "TwoLetterISORegionName": "LV"
+    },
+    {
+        "DisplayName": "Lebanon",
+        "Name": "LB",
+        "ThreeLetterISORegionName": "LBN",
+        "TwoLetterISORegionName": "LB"
+    },
+    {
+        "DisplayName": "Libya",
+        "Name": "LY",
+        "ThreeLetterISORegionName": "LBY",
+        "TwoLetterISORegionName": "LY"
+    },
+    {
+        "DisplayName": "Liechtenstein",
+        "Name": "LI",
+        "ThreeLetterISORegionName": "LIE",
+        "TwoLetterISORegionName": "LI"
+    },
+    {
+        "DisplayName": "Lithuania",
+        "Name": "LT",
+        "ThreeLetterISORegionName": "LTU",
+        "TwoLetterISORegionName": "LT"
+    },
+    {
+        "DisplayName": "Luxembourg",
+        "Name": "LU",
+        "ThreeLetterISORegionName": "LUX",
+        "TwoLetterISORegionName": "LU"
+    },
+    {
+        "DisplayName": "Macao S.A.R.",
+        "Name": "MO",
+        "ThreeLetterISORegionName": "MAC",
+        "TwoLetterISORegionName": "MO"
+    },
+    {
+        "DisplayName": "Macedonia (FYROM)",
+        "Name": "MK",
+        "ThreeLetterISORegionName": "MKD",
+        "TwoLetterISORegionName": "MK"
+    },
+    {
+        "DisplayName": "Malaysia",
+        "Name": "MY",
+        "ThreeLetterISORegionName": "MYS",
+        "TwoLetterISORegionName": "MY"
+    },
+    {
+        "DisplayName": "Maldives",
+        "Name": "MV",
+        "ThreeLetterISORegionName": "MDV",
+        "TwoLetterISORegionName": "MV"
+    },
+    {
+        "DisplayName": "Mali",
+        "Name": "ML",
+        "ThreeLetterISORegionName": "MLI",
+        "TwoLetterISORegionName": "ML"
+    },
+    {
+        "DisplayName": "Malta",
+        "Name": "MT",
+        "ThreeLetterISORegionName": "MLT",
+        "TwoLetterISORegionName": "MT"
+    },
+    {
+        "DisplayName": "Mexico",
+        "Name": "MX",
+        "ThreeLetterISORegionName": "MEX",
+        "TwoLetterISORegionName": "MX"
+    },
+    {
+        "DisplayName": "Mongolia",
+        "Name": "MN",
+        "ThreeLetterISORegionName": "MNG",
+        "TwoLetterISORegionName": "MN"
+    },
+    {
+        "DisplayName": "Montenegro",
+        "Name": "ME",
+        "ThreeLetterISORegionName": "MNE",
+        "TwoLetterISORegionName": "ME"
+    },
+    {
+        "DisplayName": "Morocco",
+        "Name": "MA",
+        "ThreeLetterISORegionName": "MAR",
+        "TwoLetterISORegionName": "MA"
+    },
+    {
+        "DisplayName": "Nepal",
+        "Name": "NP",
+        "ThreeLetterISORegionName": "NPL",
+        "TwoLetterISORegionName": "NP"
+    },
+    {
+        "DisplayName": "Netherlands",
+        "Name": "NL",
+        "ThreeLetterISORegionName": "NLD",
+        "TwoLetterISORegionName": "NL"
+    },
+    {
+        "DisplayName": "New Zealand",
+        "Name": "NZ",
+        "ThreeLetterISORegionName": "NZL",
+        "TwoLetterISORegionName": "NZ"
+    },
+    {
+        "DisplayName": "Nicaragua",
+        "Name": "NI",
+        "ThreeLetterISORegionName": "NIC",
+        "TwoLetterISORegionName": "NI"
+    },
+    {
+        "DisplayName": "Nigeria",
+        "Name": "NG",
+        "ThreeLetterISORegionName": "NGA",
+        "TwoLetterISORegionName": "NG"
+    },
+    {
+        "DisplayName": "Norway",
+        "Name": "NO",
+        "ThreeLetterISORegionName": "NOR",
+        "TwoLetterISORegionName": "NO"
+    },
+    {
+        "DisplayName": "Oman",
+        "Name": "OM",
+        "ThreeLetterISORegionName": "OMN",
+        "TwoLetterISORegionName": "OM"
+    },
+    {
+        "DisplayName": "Panama",
+        "Name": "PA",
+        "ThreeLetterISORegionName": "PAN",
+        "TwoLetterISORegionName": "PA"
+    },
+    {
+        "DisplayName": "Paraguay",
+        "Name": "PY",
+        "ThreeLetterISORegionName": "PRY",
+        "TwoLetterISORegionName": "PY"
+    },
+    {
+        "DisplayName": "People's Republic of China",
+        "Name": "CN",
+        "ThreeLetterISORegionName": "CHN",
+        "TwoLetterISORegionName": "CN"
+    },
+    {
+        "DisplayName": "Peru",
+        "Name": "PE",
+        "ThreeLetterISORegionName": "PER",
+        "TwoLetterISORegionName": "PE"
+    },
+    {
+        "DisplayName": "Philippines",
+        "Name": "PH",
+        "ThreeLetterISORegionName": "PHL",
+        "TwoLetterISORegionName": "PH"
+    },
+    {
+        "DisplayName": "Poland",
+        "Name": "PL",
+        "ThreeLetterISORegionName": "POL",
+        "TwoLetterISORegionName": "PL"
+    },
+    {
+        "DisplayName": "Portugal",
+        "Name": "PT",
+        "ThreeLetterISORegionName": "PRT",
+        "TwoLetterISORegionName": "PT"
+    },
+    {
+        "DisplayName": "Principality of Monaco",
+        "Name": "MC",
+        "ThreeLetterISORegionName": "MCO",
+        "TwoLetterISORegionName": "MC"
+    },
+    {
+        "DisplayName": "Puerto Rico",
+        "Name": "PR",
+        "ThreeLetterISORegionName": "PRI",
+        "TwoLetterISORegionName": "PR"
+    },
+    {
+        "DisplayName": "Qatar",
+        "Name": "QA",
+        "ThreeLetterISORegionName": "QAT",
+        "TwoLetterISORegionName": "QA"
+    },
+    {
+        "DisplayName": "Republica Moldova",
+        "Name": "MD",
+        "ThreeLetterISORegionName": "MDA",
+        "TwoLetterISORegionName": "MD"
+    },
+    {
+        "DisplayName": "Réunion",
+        "Name": "RE",
+        "ThreeLetterISORegionName": "REU",
+        "TwoLetterISORegionName": "RE"
+    },
+    {
+        "DisplayName": "Romania",
+        "Name": "RO",
+        "ThreeLetterISORegionName": "ROU",
+        "TwoLetterISORegionName": "RO"
+    },
+    {
+        "DisplayName": "Russia",
+        "Name": "RU",
+        "ThreeLetterISORegionName": "RUS",
+        "TwoLetterISORegionName": "RU"
+    },
+    {
+        "DisplayName": "Rwanda",
+        "Name": "RW",
+        "ThreeLetterISORegionName": "RWA",
+        "TwoLetterISORegionName": "RW"
+    },
+    {
+        "DisplayName": "Saudi Arabia",
+        "Name": "SA",
+        "ThreeLetterISORegionName": "SAU",
+        "TwoLetterISORegionName": "SA"
+    },
+    {
+        "DisplayName": "Senegal",
+        "Name": "SN",
+        "ThreeLetterISORegionName": "SEN",
+        "TwoLetterISORegionName": "SN"
+    },
+    {
+        "DisplayName": "Serbia",
+        "Name": "RS",
+        "ThreeLetterISORegionName": "SRB",
+        "TwoLetterISORegionName": "RS"
+    },
+    {
+        "DisplayName": "Serbia and Montenegro (Former)",
+        "Name": "CS",
+        "ThreeLetterISORegionName": "SCG",
+        "TwoLetterISORegionName": "CS"
+    },
+    {
+        "DisplayName": "Singapore",
+        "Name": "SG",
+        "ThreeLetterISORegionName": "SGP",
+        "TwoLetterISORegionName": "SG"
+    },
+    {
+        "DisplayName": "Slovakia",
+        "Name": "SK",
+        "ThreeLetterISORegionName": "SVK",
+        "TwoLetterISORegionName": "SK"
+    },
+    {
+        "DisplayName": "Slovenia",
+        "Name": "SI",
+        "ThreeLetterISORegionName": "SVN",
+        "TwoLetterISORegionName": "SI"
+    },
+    {
+        "DisplayName": "Soomaaliya",
+        "Name": "SO",
+        "ThreeLetterISORegionName": "SOM",
+        "TwoLetterISORegionName": "SO"
+    },
+    {
+        "DisplayName": "South Africa",
+        "Name": "ZA",
+        "ThreeLetterISORegionName": "ZAF",
+        "TwoLetterISORegionName": "ZA"
+    },
+    {
+        "DisplayName": "Spain",
+        "Name": "ES",
+        "ThreeLetterISORegionName": "ESP",
+        "TwoLetterISORegionName": "ES"
+    },
+    {
+        "DisplayName": "Sri Lanka",
+        "Name": "LK",
+        "ThreeLetterISORegionName": "LKA",
+        "TwoLetterISORegionName": "LK"
+    },
+    {
+        "DisplayName": "Sweden",
+        "Name": "SE",
+        "ThreeLetterISORegionName": "SWE",
+        "TwoLetterISORegionName": "SE"
+    },
+    {
+        "DisplayName": "Switzerland",
+        "Name": "CH",
+        "ThreeLetterISORegionName": "CHE",
+        "TwoLetterISORegionName": "CH"
+    },
+    {
+        "DisplayName": "Syria",
+        "Name": "SY",
+        "ThreeLetterISORegionName": "SYR",
+        "TwoLetterISORegionName": "SY"
+    },
+    {
+        "DisplayName": "Taiwan",
+        "Name": "TW",
+        "ThreeLetterISORegionName": "TWN",
+        "TwoLetterISORegionName": "TW"
+    },
+    {
+        "DisplayName": "Tajikistan",
+        "Name": "TJ",
+        "ThreeLetterISORegionName": "TAJ",
+        "TwoLetterISORegionName": "TJ"
+    },
+    {
+        "DisplayName": "Thailand",
+        "Name": "TH",
+        "ThreeLetterISORegionName": "THA",
+        "TwoLetterISORegionName": "TH"
+    },
+    {
+        "DisplayName": "Trinidad and Tobago",
+        "Name": "TT",
+        "ThreeLetterISORegionName": "TTO",
+        "TwoLetterISORegionName": "TT"
+    },
+    {
+        "DisplayName": "Tunisia",
+        "Name": "TN",
+        "ThreeLetterISORegionName": "TUN",
+        "TwoLetterISORegionName": "TN"
+    },
+    {
+        "DisplayName": "Turkey",
+        "Name": "TR",
+        "ThreeLetterISORegionName": "TUR",
+        "TwoLetterISORegionName": "TR"
+    },
+    {
+        "DisplayName": "Turkmenistan",
+        "Name": "TM",
+        "ThreeLetterISORegionName": "TKM",
+        "TwoLetterISORegionName": "TM"
+    },
+    {
+        "DisplayName": "U.A.E.",
+        "Name": "AE",
+        "ThreeLetterISORegionName": "ARE",
+        "TwoLetterISORegionName": "AE"
+    },
+    {
+        "DisplayName": "Ukraine",
+        "Name": "UA",
+        "ThreeLetterISORegionName": "UKR",
+        "TwoLetterISORegionName": "UA"
+    },
+    {
+        "DisplayName": "United Kingdom",
+        "Name": "GB",
+        "ThreeLetterISORegionName": "GBR",
+        "TwoLetterISORegionName": "GB"
+    },
+    {
+        "DisplayName": "United States",
+        "Name": "US",
+        "ThreeLetterISORegionName": "USA",
+        "TwoLetterISORegionName": "US"
+    },
+    {
+        "DisplayName": "Uruguay",
+        "Name": "UY",
+        "ThreeLetterISORegionName": "URY",
+        "TwoLetterISORegionName": "UY"
+    },
+    {
+        "DisplayName": "Uzbekistan",
+        "Name": "UZ",
+        "ThreeLetterISORegionName": "UZB",
+        "TwoLetterISORegionName": "UZ"
+    },
+    {
+        "DisplayName": "Vietnam",
+        "Name": "VN",
+        "ThreeLetterISORegionName": "VNM",
+        "TwoLetterISORegionName": "VN"
+    },
+    {
+        "DisplayName": "Yemen",
+        "Name": "YE",
+        "ThreeLetterISORegionName": "YEM",
+        "TwoLetterISORegionName": "YE"
+    },
+    {
+        "DisplayName": "Zimbabwe",
+        "Name": "ZW",
+        "ThreeLetterISORegionName": "ZWE",
+        "TwoLetterISORegionName": "ZW"
+    }
 ]

+ 1 - 1
Emby.Server.Implementations/Localization/iso6392.txt

@@ -485,4 +485,4 @@ znd|||Zande languages|zandé, langues
 zul||zu|Zulu|zoulou
 zun|||Zuni|zuni
 zxx|||No linguistic content; Not applicable|pas de contenu linguistique; non applicable
-zza|||Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki|zaza; dimili; dimli; kirdki; kirmanjki; zazaki
+zza|||Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki|zaza; dimili; dimli; kirdki; kirmanjki; zazaki

+ 19 - 19
Emby.XmlTv/Emby.XmlTv.Console/Emby.XmlTv.Console.csproj

@@ -1,22 +1,22 @@
 <Project Sdk="Microsoft.NET.Sdk">
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
-      <Project>{0d023565-5942-4d79-9098-a1b4b6665a40}</Project>
-      <Name>Emby.XmlTv</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <ItemGroup>
+        <Reference Include="System" />
+        <Reference Include="System.Core" />
+        <Reference Include="System.Xml.Linq" />
+        <Reference Include="Microsoft.CSharp" />
+        <Reference Include="System.Data" />
+        <Reference Include="System.Net.Http" />
+        <Reference Include="System.Xml" />
+    </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
+            <Project>{0d023565-5942-4d79-9098-a1b4b6665a40}</Project>
+            <Name>Emby.XmlTv</Name>
+        </ProjectReference>
+    </ItemGroup>
+    <PropertyGroup>
+        <TargetFramework>netcoreapp2.1</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 114 - 113
Emby.XmlTv/Emby.XmlTv.Test/Emby.XmlTv.Test.csproj

@@ -1,123 +1,124 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{C8298223-2468-466C-9B06-FBF61926CECB}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Emby.XmlTv.Test</RootNamespace>
-    <AssemblyName>Emby.XmlTv.Test</AssemblyName>
-    <FileAlignment>512</FileAlignment>
-    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
-    <IsCodedUITest>False</IsCodedUITest>
-    <TestProjectType>UnitTest</TestProjectType>
-    <TargetFrameworkProfile />
-    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
-    <RestorePackages>true</RestorePackages>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <Choose>
-    <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
-      </ItemGroup>
-    </When>
-    <Otherwise>
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
-          <Private>False</Private>
-        </Reference>
-      </ItemGroup>
-    </Otherwise>
-  </Choose>
-  <ItemGroup>
-    <Compile Include="XmlTvReaderDateTimeTests.cs" />
-    <Compile Include="XmlTvReaderLanguageTests.cs" />
-    <Compile Include="XmlTvReaderTests.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Xml Files\epg.xml" />
-    <Content Include="Xml Files\ES_MultiLanguageData.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Xml Files\honeybee.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Xml Files\MultilanguageData.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Xml Files\UK_Data.xml">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-      <SubType>Designer</SubType>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
-      <Project>{0D023565-5942-4D79-9098-A1B4B6665A40}</Project>
-      <Name>Emby.XmlTv</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Choose>
-    <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
-      <ItemGroup>
-        <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-        <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-          <Private>False</Private>
-        </Reference>
-      </ItemGroup>
-    </When>
-  </Choose>
-  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+<Project ToolsVersion="14.0" DefaultTargets="Build"
+    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
-      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+        <ProjectGuid>{C8298223-2468-466C-9B06-FBF61926CECB}</ProjectGuid>
+        <OutputType>Library</OutputType>
+        <AppDesignerFolder>Properties</AppDesignerFolder>
+        <RootNamespace>Emby.XmlTv.Test</RootNamespace>
+        <AssemblyName>Emby.XmlTv.Test</AssemblyName>
+        <FileAlignment>512</FileAlignment>
+        <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+        <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
+        <IsCodedUITest>False</IsCodedUITest>
+        <TestProjectType>UnitTest</TestProjectType>
+        <TargetFrameworkProfile />
+        <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
+        <RestorePackages>true</RestorePackages>
     </PropertyGroup>
-    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
-  </Target>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+        <DebugSymbols>true</DebugSymbols>
+        <DebugType>full</DebugType>
+        <Optimize>false</Optimize>
+        <OutputPath>bin\Debug\</OutputPath>
+        <DefineConstants>DEBUG;TRACE</DefineConstants>
+        <ErrorReport>prompt</ErrorReport>
+        <WarningLevel>4</WarningLevel>
+    </PropertyGroup>
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+        <DebugType>pdbonly</DebugType>
+        <Optimize>true</Optimize>
+        <OutputPath>bin\Release\</OutputPath>
+        <DefineConstants>TRACE</DefineConstants>
+        <ErrorReport>prompt</ErrorReport>
+        <WarningLevel>4</WarningLevel>
+    </PropertyGroup>
+    <ItemGroup>
+        <Reference Include="System" />
+        <Reference Include="System.Xml" />
+    </ItemGroup>
+    <Choose>
+        <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
+            <ItemGroup>
+                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
+            </ItemGroup>
+        </When>
+        <Otherwise>
+            <ItemGroup>
+                <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
+                    <Private>False</Private>
+                </Reference>
+            </ItemGroup>
+        </Otherwise>
+    </Choose>
+    <ItemGroup>
+        <Compile Include="XmlTvReaderDateTimeTests.cs" />
+        <Compile Include="XmlTvReaderLanguageTests.cs" />
+        <Compile Include="XmlTvReaderTests.cs" />
+        <Compile Include="Properties\AssemblyInfo.cs" />
+    </ItemGroup>
+    <ItemGroup>
+        <Content Include="Xml Files\epg.xml" />
+        <Content Include="Xml Files\ES_MultiLanguageData.xml">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+        <Content Include="Xml Files\honeybee.xml">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+        <Content Include="Xml Files\MultilanguageData.xml">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </Content>
+        <Content Include="Xml Files\UK_Data.xml">
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+            <SubType>Designer</SubType>
+        </Content>
+    </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\Emby.XmlTv\Emby.XmlTv.csproj">
+            <Project>{0D023565-5942-4D79-9098-A1B4B6665A40}</Project>
+            <Name>Emby.XmlTv</Name>
+        </ProjectReference>
+    </ItemGroup>
+    <Choose>
+        <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
+            <ItemGroup>
+                <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+                    <Private>False</Private>
+                </Reference>
+                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+                    <Private>False</Private>
+                </Reference>
+                <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+                    <Private>False</Private>
+                </Reference>
+                <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+                    <Private>False</Private>
+                </Reference>
+            </ItemGroup>
+        </When>
+    </Choose>
+    <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
+    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+    <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+        <PropertyGroup>
+            <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+        </PropertyGroup>
+        <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
+    </Target>
+    <!-- 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.
   <Target Name="BeforeBuild">
   </Target>
   <Target Name="AfterBuild">
   </Target>
   -->
-	<PropertyGroup>
-		<TargetFramework>netstandard2.0</TargetFramework>
-		<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-	</PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 </Project>

+ 8 - 9
Emby.XmlTv/Emby.XmlTv/Emby.XmlTv.csproj

@@ -1,13 +1,12 @@
-
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\..\SharedVersion.cs" Link="SharedVersion.cs" />
+    </ItemGroup>
 
 </Project>

+ 35 - 35
Jellyfin.Server/Jellyfin.Server.csproj

@@ -1,44 +1,44 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <AssemblyName>jellyfin</AssemblyName>
-    <OutputType>Exe</OutputType>
-    <TargetFramework>netcoreapp2.1</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <AssemblyName>jellyfin</AssemblyName>
+        <OutputType>Exe</OutputType>
+        <TargetFramework>netcoreapp2.1</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <PropertyGroup>
-    <!-- We need C# 7.1 for async main-->
-    <LangVersion>latest</LangVersion>
-  </PropertyGroup>
+    <PropertyGroup>
+        <!-- We need C# 7.1 for async main-->
+        <LangVersion>latest</LangVersion>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <EmbeddedResource Include="Resources/Configuration/*" />
-  </ItemGroup>
+    <ItemGroup>
+        <EmbeddedResource Include="Resources/Configuration/*" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.2.0" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
-    <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
-    <PackageReference Include="Serilog.Settings.Configuration" Version="3.0.1" />
-    <PackageReference Include="Serilog.Sinks.Async" Version="1.3.0" />
-    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
-    <PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
-    <PackageReference Include="SkiaSharp" Version="1.68.0" />
-    <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="1.1.12" />
-    <PackageReference Include="SQLitePCLRaw.core" Version="1.1.12" />
-    <PackageReference Include="SQLitePCLRaw.provider.sqlite3.netstandard11" Version="1.1.12" />
-  </ItemGroup>
+    <ItemGroup>
+        <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.2.0" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
+        <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
+        <PackageReference Include="Serilog.Settings.Configuration" Version="3.0.1" />
+        <PackageReference Include="Serilog.Sinks.Async" Version="1.3.0" />
+        <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
+        <PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
+        <PackageReference Include="SkiaSharp" Version="1.68.0" />
+        <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="1.1.12" />
+        <PackageReference Include="SQLitePCLRaw.core" Version="1.1.12" />
+        <PackageReference Include="SQLitePCLRaw.provider.sqlite3.netstandard11" Version="1.1.12" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
-    <ProjectReference Include="..\Emby.Drawing.Skia\Emby.Drawing.Skia.csproj" />
-    <ProjectReference Include="..\Emby.IsoMounting\IsoMounter\IsoMounter.csproj" />
-    <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\Emby.Drawing\Emby.Drawing.csproj" />
+        <ProjectReference Include="..\Emby.Drawing.Skia\Emby.Drawing.Skia.csproj" />
+        <ProjectReference Include="..\Emby.IsoMounting\IsoMounter\IsoMounter.csproj" />
+        <ProjectReference Include="..\Emby.Server.Implementations\Emby.Server.Implementations.csproj" />
+    </ItemGroup>
 
 </Project>

+ 11 - 11
MediaBrowser.Api/MediaBrowser.Api.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 16 - 16
MediaBrowser.Common/MediaBrowser.Common.csproj

@@ -1,23 +1,23 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <Authors>Jellyfin Contributors</Authors>
-    <PackageId>Jellyfin.Common</PackageId>
-    <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
-    <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
-  </PropertyGroup>
+    <PropertyGroup>
+        <Authors>Jellyfin Contributors</Authors>
+        <PackageId>Jellyfin.Common</PackageId>
+        <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
+        <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 17 - 17
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -1,24 +1,24 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <Authors>Jellyfin Contributors</Authors>
-    <PackageId>Jellyfin.Controller</PackageId>
-    <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
-    <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
-  </PropertyGroup>
+    <PropertyGroup>
+        <Authors>Jellyfin Contributors</Authors>
+        <PackageId>Jellyfin.Controller</PackageId>
+        <PackageLicenseUrl>https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt</PackageLicenseUrl>
+        <RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 11 - 11
MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj

@@ -1,17 +1,17 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <ItemGroup>
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
 </Project>

+ 14 - 14
MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj

@@ -1,20 +1,20 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>netstandard2.0</TargetFramework>
-    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
-  </PropertyGroup>
+    <PropertyGroup>
+        <TargetFramework>netstandard2.0</TargetFramework>
+        <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    </PropertyGroup>
 
-  <ItemGroup>
-    <Compile Include="..\SharedVersion.cs" />
-  </ItemGroup>
+    <ItemGroup>
+        <Compile Include="..\SharedVersion.cs" />
+    </ItemGroup>
 
-  <ItemGroup>
-    <ProjectReference Include="..\BDInfo\BDInfo.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
-    <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
-    <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
-  </ItemGroup>
+    <ItemGroup>
+        <ProjectReference Include="..\BDInfo\BDInfo.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Common\MediaBrowser.Common.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Controller\MediaBrowser.Controller.csproj" />
+        <ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
+        <ProjectReference Include="..\OpenSubtitlesHandler\OpenSubtitlesHandler.csproj" />
+    </ItemGroup>
 
 </Project>

Some files were not shown because too many files changed in this diff