From e5f32b2f905a3acbc4bac04aeab1ca6cc1fc421a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 5 Oct 2017 14:02:31 -0400 Subject: [PATCH] expand display settings --- .../emby-webcomponents/appsettings.js | 2 +- .../displaysettings/displaysettings.js | 1 + .../displaysettings.template.html | 125 ++++++++++++++++++ .../homesections/homesections.js | 2 +- .../emby-webcomponents/router.js | 2 +- .../emby-webcomponents/strings/ar.json | 23 ++++ .../emby-webcomponents/strings/bg-bg.json | 53 +++++--- .../emby-webcomponents/strings/ca.json | 23 ++++ .../emby-webcomponents/strings/cs.json | 23 ++++ .../emby-webcomponents/strings/da.json | 23 ++++ .../emby-webcomponents/strings/de.json | 25 +++- .../emby-webcomponents/strings/el.json | 23 ++++ .../emby-webcomponents/strings/en-gb.json | 23 ++++ .../emby-webcomponents/strings/en-us.json | 23 ++++ .../emby-webcomponents/strings/es-ar.json | 23 ++++ .../emby-webcomponents/strings/es-mx.json | 35 ++++- .../emby-webcomponents/strings/es.json | 27 +++- .../emby-webcomponents/strings/fi.json | 23 ++++ .../emby-webcomponents/strings/fr-ca.json | 23 ++++ .../emby-webcomponents/strings/fr.json | 25 +++- .../emby-webcomponents/strings/gsw.json | 23 ++++ .../emby-webcomponents/strings/he.json | 23 ++++ .../emby-webcomponents/strings/hr.json | 23 ++++ .../emby-webcomponents/strings/hu.json | 23 ++++ .../emby-webcomponents/strings/id.json | 23 ++++ .../emby-webcomponents/strings/it.json | 23 ++++ .../emby-webcomponents/strings/kk.json | 23 ++++ .../emby-webcomponents/strings/ko.json | 23 ++++ .../emby-webcomponents/strings/lt-lt.json | 23 ++++ .../emby-webcomponents/strings/ms.json | 23 ++++ .../emby-webcomponents/strings/nb.json | 23 ++++ .../emby-webcomponents/strings/nl.json | 23 ++++ .../emby-webcomponents/strings/pl.json | 29 +++- .../emby-webcomponents/strings/pt-br.json | 93 ++++++++----- .../emby-webcomponents/strings/pt-pt.json | 23 ++++ .../emby-webcomponents/strings/ro.json | 23 ++++ .../emby-webcomponents/strings/ru.json | 23 ++++ .../emby-webcomponents/strings/sk.json | 23 ++++ .../emby-webcomponents/strings/sl-si.json | 23 ++++ .../emby-webcomponents/strings/sv.json | 23 ++++ .../emby-webcomponents/strings/tr.json | 23 ++++ .../emby-webcomponents/strings/uk.json | 23 ++++ .../emby-webcomponents/strings/vi.json | 23 ++++ .../emby-webcomponents/strings/zh-cn.json | 23 ++++ .../emby-webcomponents/strings/zh-hk.json | 23 ++++ .../emby-webcomponents/strings/zh-tw.json | 23 ++++ .../usersettings/usersettingsbuilder.js | 2 +- dashboard-ui/components/apphost.js | 2 +- dashboard-ui/mypreferencesdisplay.html | 93 +------------ dashboard-ui/scripts/autobackdrops.js | 2 +- dashboard-ui/scripts/mypreferencesdisplay.js | 2 +- dashboard-ui/scripts/site.js | 2 +- dashboard-ui/strings/be-by.json | 4 +- dashboard-ui/strings/bg-bg.json | 74 +++++------ dashboard-ui/strings/de-de.json | 4 +- dashboard-ui/strings/el.json | 4 +- dashboard-ui/strings/es-ar.json | 4 +- dashboard-ui/strings/es-es.json | 4 +- dashboard-ui/strings/es-mx.json | 18 +-- dashboard-ui/strings/es.json | 10 +- dashboard-ui/strings/fa.json | 4 +- dashboard-ui/strings/fi.json | 4 +- dashboard-ui/strings/fr-ca.json | 4 +- dashboard-ui/strings/fr.json | 4 +- dashboard-ui/strings/gsw.json | 4 +- dashboard-ui/strings/he.json | 4 +- dashboard-ui/strings/hu.json | 4 +- dashboard-ui/strings/id.json | 4 +- dashboard-ui/strings/lt-lt.json | 4 +- dashboard-ui/strings/ms.json | 4 +- dashboard-ui/strings/pl.json | 50 +++---- dashboard-ui/strings/pt-br.json | 20 +-- dashboard-ui/strings/ro.json | 4 +- dashboard-ui/strings/sk.json | 4 +- dashboard-ui/strings/sl-si.json | 4 +- dashboard-ui/strings/tr.json | 4 +- dashboard-ui/strings/uk.json | 4 +- dashboard-ui/strings/vi.json | 4 +- dashboard-ui/strings/zh-cn.json | 4 +- dashboard-ui/strings/zh-hk.json | 4 +- dashboard-ui/strings/zh-tw.json | 4 +- 81 files changed, 1275 insertions(+), 297 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.js create mode 100644 dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.template.html diff --git a/dashboard-ui/bower_components/emby-webcomponents/appsettings.js b/dashboard-ui/bower_components/emby-webcomponents/appsettings.js index 4c5895e129..ba92bded08 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/appsettings.js +++ b/dashboard-ui/bower_components/emby-webcomponents/appsettings.js @@ -1 +1 @@ -define(["appStorage","events"],function(appStorage,events){"use strict";function getKey(name,userId){return userId&&(name=userId+"-"+name),name}function AppSettings(){}return AppSettings.prototype.enableAutoLogin=function(val){return null!=val&&this.set("enableAutoLogin",val.toString()),"false"!==this.get("enableAutoLogin")},AppSettings.prototype.enableAutomaticBitrateDetection=function(isInNetwork,mediaType,val){var key="enableautobitratebitrate-"+mediaType+"-"+isInNetwork;return null!=val&&(isInNetwork&&"Audio"===mediaType&&(val=!0),this.set(key,val.toString())),!(!isInNetwork||"Audio"!==mediaType)||"false"!==this.get(key)},AppSettings.prototype.maxStreamingBitrate=function(isInNetwork,mediaType,val){var key="maxbitrate-"+mediaType+"-"+isInNetwork;return null!=val&&(isInNetwork&&"Audio"===mediaType||this.set(key,val)),isInNetwork&&"Audio"===mediaType?15e7:parseInt(this.get(key)||"0")||15e5},AppSettings.prototype.maxStaticMusicBitrate=function(val){void 0!==val&&this.set("maxStaticMusicBitrate",val);var defaultValue=32e4;return parseInt(this.get("maxStaticMusicBitrate")||defaultValue.toString())||defaultValue},AppSettings.prototype.maxChromecastBitrate=function(val){return null!=val&&this.set("chromecastBitrate1",val),val=this.get("chromecastBitrate1"),val?parseInt(val):null},AppSettings.prototype.syncOnlyOnWifi=function(val){return null!=val&&this.set("syncOnlyOnWifi",val.toString()),"false"!==this.get("syncOnlyOnWifi")},AppSettings.prototype.syncPath=function(val){return null!=val&&this.set("syncPath",val),this.get("syncPath")},AppSettings.prototype.cameraUploadServers=function(val){return null!=val&&this.set("cameraUploadServers",val.join(",")),val=this.get("cameraUploadServers"),val?val.split(","):[]},AppSettings.prototype.set=function(name,value,userId){var currentValue=this.get(name,userId);appStorage.setItem(getKey(name,userId),value),currentValue!==value&&events.trigger(this,"change",[name])},AppSettings.prototype.get=function(name,userId){return appStorage.getItem(getKey(name,userId))},AppSettings.prototype.enableSystemExternalPlayers=function(val){return null!=val&&this.set("enableSystemExternalPlayers",val.toString()),"true"===this.get("enableSystemExternalPlayers")},new AppSettings}); \ No newline at end of file +define(["appStorage","events"],function(appStorage,events){"use strict";function getKey(name,userId){return userId&&(name=userId+"-"+name),name}function AppSettings(){}return AppSettings.prototype.enableAutoLogin=function(val){return null!=val&&this.set("enableAutoLogin",val.toString()),"false"!==this.get("enableAutoLogin")},AppSettings.prototype.enableAutomaticBitrateDetection=function(isInNetwork,mediaType,val){var key="enableautobitratebitrate-"+mediaType+"-"+isInNetwork;return null!=val&&(isInNetwork&&"Audio"===mediaType&&(val=!0),this.set(key,val.toString())),!(!isInNetwork||"Audio"!==mediaType)||"false"!==this.get(key)},AppSettings.prototype.maxStreamingBitrate=function(isInNetwork,mediaType,val){var key="maxbitrate-"+mediaType+"-"+isInNetwork;return null!=val&&(isInNetwork&&"Audio"===mediaType||this.set(key,val)),isInNetwork&&"Audio"===mediaType?15e7:parseInt(this.get(key)||"0")||15e5},AppSettings.prototype.maxStaticMusicBitrate=function(val){void 0!==val&&this.set("maxStaticMusicBitrate",val);var defaultValue=32e4;return parseInt(this.get("maxStaticMusicBitrate")||defaultValue.toString())||defaultValue},AppSettings.prototype.maxChromecastBitrate=function(val){return null!=val&&this.set("chromecastBitrate1",val),val=this.get("chromecastBitrate1"),val?parseInt(val):null},AppSettings.prototype.syncOnlyOnWifi=function(val){return null!=val&&this.set("syncOnlyOnWifi",val.toString()),"false"!==this.get("syncOnlyOnWifi")},AppSettings.prototype.syncPath=function(val){return null!=val&&this.set("syncPath",val),this.get("syncPath")},AppSettings.prototype.cameraUploadServers=function(val){return null!=val&&this.set("cameraUploadServers",val.join(",")),val=this.get("cameraUploadServers"),val?val.split(","):[]},AppSettings.prototype.runAtStartup=function(val){return null!=val&&this.set("runatstartup",val.toString()),"true"===this.get("runatstartup")},AppSettings.prototype.set=function(name,value,userId){var currentValue=this.get(name,userId);appStorage.setItem(getKey(name,userId),value),currentValue!==value&&events.trigger(this,"change",[name])},AppSettings.prototype.get=function(name,userId){return appStorage.getItem(getKey(name,userId))},AppSettings.prototype.enableSystemExternalPlayers=function(val){return null!=val&&this.set("enableSystemExternalPlayers",val.toString()),"true"===this.get("enableSystemExternalPlayers")},new AppSettings}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.js b/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.js new file mode 100644 index 0000000000..5af9a9a6ff --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.js @@ -0,0 +1 @@ +define(["require","layoutManager","appSettings","pluginManager","apphost","focusManager","globalize","loading","connectionManager","skinManager","dom","events","emby-select","emby-checkbox","emby-linkbutton"],function(require,layoutManager,appSettings,pluginManager,appHost,focusManager,globalize,loading,connectionManager,skinManager,dom,events){"use strict";function fillThemes(select,isDashboard){select.innerHTML=skinManager.getThemes().map(function(t){var value=t.id;return t.isDefault&&!isDashboard?value="":t.isDefaultServerDashboard&&isDashboard&&(value=""),'"}).join("")}function loadScreensavers(context,userSettings){var selectScreensaver=context.querySelector(".selectScreensaver"),options=pluginManager.ofType("screensaver").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:globalize.translate("sharedcomponents#None"),value:"none"}),selectScreensaver.innerHTML=options.map(function(o){return'"}).join(""),selectScreensaver.value=userSettings.screensaver(),selectScreensaver.value||(selectScreensaver.value="none")}function loadSoundEffects(context,userSettings){var selectSoundEffects=context.querySelector(".selectSoundEffects"),options=pluginManager.ofType("soundeffects").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:globalize.translate("sharedcomponents#None"),value:"none"}),selectSoundEffects.innerHTML=options.map(function(o){return'"}).join(""),selectSoundEffects.value=userSettings.soundEffects(),selectSoundEffects.value||(selectSoundEffects.value="none")}function loadSkins(context,userSettings){var selectSkin=context.querySelector(".selectSkin"),options=pluginManager.ofType("skin").map(function(plugin){return{name:plugin.name,value:plugin.id}});selectSkin.innerHTML=options.map(function(o){return'"}).join(""),selectSkin.value=userSettings.skin(),!selectSkin.value&&options.length&&(selectSkin.value=options[0].value)}function loadForm(context,user,userSettings,apiClient){apiClient.getCurrentUserId(),user.Id;user.Policy.IsAdministrator?context.querySelector(".selectDashboardThemeContainer").classList.remove("hide"):context.querySelector(".selectDashboardThemeContainer").classList.add("hide"),appHost.supports("displaylanguage")?context.querySelector(".languageSection").classList.remove("hide"):context.querySelector(".languageSection").classList.add("hide"),appHost.supports("displaymode")?context.querySelector(".fldDisplayMode").classList.remove("hide"):context.querySelector(".fldDisplayMode").classList.add("hide"),appHost.supports("runatstartup")?context.querySelector(".fldAutorun").classList.remove("hide"):context.querySelector(".fldAutorun").classList.add("hide"),appHost.supports("soundeffects")?context.querySelector(".fldSoundEffects").classList.remove("hide"):context.querySelector(".fldSoundEffects").classList.add("hide"),appHost.supports("skins")?context.querySelector(".selectSkinContainer").classList.remove("hide"):context.querySelector(".selectSkinContainer").classList.add("hide"),appHost.supports("screensaver")?context.querySelector(".selectScreensaverContainer").classList.remove("hide"):context.querySelector(".selectScreensaverContainer").classList.add("hide"),context.querySelector(".chkRunAtStartup").checked=appSettings.runAtStartup();var selectTheme=context.querySelector("#selectTheme"),selectDashboardTheme=context.querySelector("#selectDashboardTheme");fillThemes(selectTheme),fillThemes(selectDashboardTheme,!0),loadScreensavers(context,userSettings),loadSoundEffects(context,userSettings),loadSkins(context,userSettings),context.querySelector(".chkDisplayMissingEpisodes").checked=user.Configuration.DisplayMissingEpisodes||!1,context.querySelector("#chkThemeSong").checked=userSettings.enableThemeSongs(),context.querySelector("#chkThemeVideo").checked=userSettings.enableThemeVideos(),context.querySelector("#chkBackdrops").checked=userSettings.enableBackdrops(),context.querySelector("#selectLanguage").value=userSettings.language()||"",selectDashboardTheme.value=userSettings.dashboardTheme()||"",selectTheme.value=userSettings.theme()||"",context.querySelector(".selectLayout").value=layoutManager.getSavedLayout()||"",loading.hide()}function refreshGlobalUserSettings(userSettingsInstance){require(["userSettings"],function(userSettings){userSettings.importFrom(userSettingsInstance)})}function saveUser(context,user,userSettingsInstance,apiClient){return appSettings.runAtStartup(context.querySelector(".chkRunAtStartup").checked),user.Configuration.DisplayMissingEpisodes=context.querySelector(".chkDisplayMissingEpisodes").checked,appHost.supports("displaylanguage")&&userSettingsInstance.language(context.querySelector("#selectLanguage").value),userSettingsInstance.enableThemeSongs(context.querySelector("#chkThemeSong").checked),userSettingsInstance.enableThemeVideos(context.querySelector("#chkThemeVideo").checked),userSettingsInstance.dashboardTheme(context.querySelector("#selectDashboardTheme").value),userSettingsInstance.theme(context.querySelector("#selectTheme").value),userSettingsInstance.soundEffects(context.querySelector(".selectSoundEffects").value),userSettingsInstance.screensaver(context.querySelector(".selectScreensaver").value),userSettingsInstance.skin(context.querySelector(".selectSkin").value),userSettingsInstance.enableBackdrops(context.querySelector("#chkBackdrops").checked),user.Id===apiClient.getCurrentUserId()&&(skinManager.setTheme(userSettingsInstance.theme()),refreshGlobalUserSettings(userSettingsInstance)),layoutManager.setLayout(context.querySelector(".selectLayout").value),apiClient.updateUserConfiguration(user.Id,user.Configuration)}function save(instance,context,userId,userSettings,apiClient,enableSaveConfirmation){loading.show(),apiClient.getUser(userId).then(function(user){saveUser(context,user,userSettings,apiClient).then(function(){loading.hide(),enableSaveConfirmation&&require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#SettingsSaved"))}),events.trigger(instance,"saved")},function(){loading.hide()})})}function onSubmit(e){var self=this,apiClient=connectionManager.getApiClient(self.options.serverId),userId=self.options.userId,userSettings=self.options.userSettings;return userSettings.setUserInfo(userId,apiClient).then(function(){var enableSaveConfirmation=self.options.enableSaveConfirmation;save(self,self.options.element,userId,userSettings,apiClient,enableSaveConfirmation)}),e&&e.preventDefault(),!1}function embed(options,self){require(["text!./displaysettings.template.html"],function(template){options.element.innerHTML=globalize.translateDocument(template,"sharedcomponents"),options.element.querySelector("form").addEventListener("submit",onSubmit.bind(self)),options.enableSaveButton&&options.element.querySelector(".btnSave").classList.remove("hide"),self.loadData(options.autoFocus)})}function DisplaySettings(options){this.options=options,embed(options,this)}return DisplaySettings.prototype.loadData=function(autoFocus){var self=this,context=self.options.element;loading.show();var userId=self.options.userId,apiClient=connectionManager.getApiClient(self.options.serverId),userSettings=self.options.userSettings;return apiClient.getUser(userId).then(function(user){return userSettings.setUserInfo(userId,apiClient).then(function(){self.dataLoaded=!0,loadForm(context,user,userSettings,apiClient),autoFocus&&focusManager.autoFocus(context)})})},DisplaySettings.prototype.submit=function(){onSubmit.call(this)},DisplaySettings.prototype.destroy=function(){this.options=null},DisplaySettings}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.template.html b/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.template.html new file mode 100644 index 0000000000..588d087e68 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/displaysettings/displaysettings.template.html @@ -0,0 +1,125 @@ +
+ +

+ ${Display} +

+
+ +
+
${LabelDisplayLanguageHelp}
+
+ ${LearnHowYouCanContribute} +
+
+
+ +
+ +
${DisplayModeHelp}
+
+ +
+ +
+ +
+ +
${FeatureRequiresEmbyPremiere}
+
+
+ +
${FeatureRequiresEmbyPremiere}
+
+
+ +
+ +
+ +
+ +
+ +
${EnableBackdropsHelp}
+
+
+ +
${EnableThemeSongsHelp}
+
+
+ +
${EnableThemeVideosHelp}
+
+ +
+ +
+ +
+ +
${DisplayMissingEpisodesWithinSeasonsHelp}
+
+ + +
\ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js index 7f37d814cf..ab8cd78b68 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js +++ b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js @@ -1 +1 @@ -define(["cardBuilder","registrationServices","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","appRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton","css!./homesections"],function(cardBuilder,registrationServices,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,appRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function getAllSectionsToShow(userSettings,sectionCount){for(var sections=[],i=0,length=sectionCount;i';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[],sections=getAllSectionsToShow(userSettings,sectionCount);for(i=0,length=sections.length;i",layoutManager.tv||(html+=''),html+="",html+='
';for(var i=0,length=items.length;i'+icon+""+item.Name+""}return html+="
",html+=""}function loadlibraryButtons(elem,apiClient,user,userSettings,userViews){return Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.classList.remove("verticalSection");var html=getLibraryButtonsHtml(userViews);elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function bindAppInfoEvents(elem){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
',html+='
',html+="
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='

Discover Emby Theater

',html+='',html+="
";var nameText="Emby Theater";return html+='
',html+='

A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.

",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='
',html+='
',html+='

Discover Emby Premiere

',html+='',html+="
",html+='
',html+='

Enjoy Emby DVR, get free access to Emby apps, and more.

',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=16;enableScrollX()?"music"===parent.CollectionType&&(limit=30):limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8;var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var viewType=parent.CollectionType,shape="movies"===viewType?getPortraitShape():"music"===viewType?getSquareShape():getThumbShape(),cardLayout=!1;html+=cardBuilder.getCardsHtml({items:items,shape:shape,preferThumb:"movies"!==viewType&&"music"!==viewType?"auto":null,showUnplayedIndicator:!1,showChildCountIndicator:!0,context:"home",overlayText:!1,centerText:!cardLayout,overlayPlayButton:"photos"!==viewType,allowBottomPadding:!enableScrollX()&&!cardLayout,cardLayout:cardLayout,showTitle:"photos"!==viewType,showYear:"movies"===viewType||"tvshows"===viewType||!viewType,showParentTitle:"music"===viewType||"tvshows"===viewType||!viewType||cardLayout&&"tvshows"===viewType,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user,userViews){elem.classList.remove("verticalSection");for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=userViews.length;i=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId,EnableTotalRecordCount:!1};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+='

'+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+"

",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(elem,options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings(elem,{serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function getDownloadsSectionHtml(apiClient,user,userSettings){if(!appHost.supports("sync")||!user.Policy.EnableContentDownloading)return Promise.resolve("");var promise=apiClient.getLatestOfflineItems?apiClient.getLatestOfflineItems({Limit:20,Filters:"IsNotFolder"}):Promise.resolve([]);return promise.then(function(items){var html="";html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderMyDownloads")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="

",html+='',html+="
",html+=''),html+="
",html+='
';var cardLayout=!1;return html+=cardBuilder.getCardsHtml({items:items,preferThumb:"auto",shape:"autooverflow",overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),html+="
",html+="
",html+="
"})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape,userViews,allSections){elem.classList.remove("verticalSection");var html="",scrollX=!layoutManager.desktop;return userViews.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderMyMedia")+"

",layoutManager.tv||(html+=''),html+="
",html+=scrollX?'
':'
',html+=cardBuilder.getCardsHtml({items:userViews,shape:scrollX?"overflowBackdrop":shape,showTitle:!0,centerText:!0,overlayText:!1,lazy:!0,transition:!1,allowBottomPadding:!scrollX,cardClass:scrollX?"overflowHomeLibraryCard":null}),scrollX&&(html+="
"),html+="
",html+="
"),Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getResumableItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueWatching")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)},function(){return Promise.resolve()})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getResumableItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueListening")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.classList.remove("hide")}else elem.classList.add("hide");elem.innerHTML=html,imageLoader.lazyChildren(elem)},function(){return Promise.resolve()})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0,action:"none",centerPlayButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function bindUnlockClick(elem){var btnUnlock=elem.querySelector(".btnUnlock");btnUnlock&&btnUnlock.addEventListener("click",function(e){registrationServices.validateFeature("livetv",{viewOnly:!0}).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");var promises=[];promises.push(registrationServices.validateFeature("livetv",{viewOnly:!0,showDialog:!1}).then(function(){return!0},function(){return!1}));user.Id;return promises.push(apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"})),Promise.all(promises).then(function(responses){var registered=responses[0],result=responses[1],html="";result.Items.length&®istered?(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTV")+"

",html+="
",enableScrollX()?(html+='",html+="
",html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderOnNow")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape(),lines:3,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"):result.Items.length&&!registered&&(html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTvRequiresUnlock")+"

",html+='",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem),bindUnlockClick(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderNextUp")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!enableScrollX(),cardLayout:cardLayout}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0,EnableTotalRecordCount:!1}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id,EnableTotalRecordCount:!1};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='
',html+='
';var text=globalize.translate("sharedcomponents#HeaderLatestFrom").replace("{0}",channel.Name);html+='

'+text+"

",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#More")+""),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!enableScrollX()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+"

",!layoutManager.tv,html+="
"),html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,showParentTitle:!0,coverImage:!0,lazy:!0,showDetailsMenu:!0,centerText:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),preferThumb:!0,cardLayout:!1}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,getDefaultSection:getDefaultSection,loadSections:loadSections}}); \ No newline at end of file +define(["cardBuilder","registrationServices","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","appRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton","css!./homesections"],function(cardBuilder,registrationServices,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,appRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function getAllSectionsToShow(userSettings,sectionCount){for(var sections=[],i=0,length=sectionCount;i
';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[],sections=getAllSectionsToShow(userSettings,sectionCount);for(i=0,length=sections.length;i",layoutManager.tv||(html+=''),html+="
",html+='
';for(var i=0,length=items.length;i'+icon+""+item.Name+""}return html+="
",html+="
"}function loadlibraryButtons(elem,apiClient,user,userSettings,userViews){return Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.classList.remove("verticalSection");var html=getLibraryButtonsHtml(userViews);elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function bindAppInfoEvents(elem){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
',html+='
',html+="
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='

Discover Emby Theater

',html+='',html+="
";var nameText="Emby Theater";return html+='
',html+='

A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more.

",html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function getPremiereInfo(){var html="";return html+='
',html+='
',html+='

Discover Emby Premiere

',html+='',html+="
",html+='
',html+='

Enjoy Emby DVR, get free access to Emby apps, and more.

',html+='
',html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater1.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater2.png"),html+=getCard("https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/apps/theater3.png"),html+="
",html+="
",html+="
"}function renderLatestSection(elem,apiClient,user,parent){var limit=16;enableScrollX()?"music"===parent.CollectionType&&(limit=30):limit="tvshows"===parent.CollectionType?5:"music"===parent.CollectionType?9:8;var options={Limit:limit,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",ParentId:parent.Id};return apiClient.getJSON(apiClient.getUrl("Users/"+user.Id+"/Items/Latest",options)).then(function(items){var html="";if(items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var viewType=parent.CollectionType,shape="movies"===viewType?getPortraitShape():"music"===viewType?getSquareShape():getThumbShape(),cardLayout=!1;html+=cardBuilder.getCardsHtml({items:items,shape:shape,preferThumb:"movies"!==viewType&&"music"!==viewType?"auto":null,showUnplayedIndicator:!1,showChildCountIndicator:!0,context:"home",overlayText:!1,centerText:!cardLayout,overlayPlayButton:"photos"!==viewType,allowBottomPadding:!enableScrollX()&&!cardLayout,cardLayout:cardLayout,showTitle:"photos"!==viewType,showYear:"movies"===viewType||"tvshows"===viewType||!viewType,showParentTitle:"music"===viewType||"tvshows"===viewType||!viewType||cardLayout&&"tvshows"===viewType,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadRecentlyAdded(elem,apiClient,user,userViews){elem.classList.remove("verticalSection");for(var excludeViewTypes=["playlists","livetv","boxsets","channels"],excludeItemTypes=["Channel"],i=0,length=userViews.length;i=2400?10:screenWidth>=1600?10:screenWidth>=1440?8:screenWidth>=800?7:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:userId,EnableTotalRecordCount:!1};return apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";result.Items.length&&(html+='

'+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+"

",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
")),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function showHomeScreenSettings(elem,options){return getRequirePromise(["homescreenSettingsDialog"]).then(function(homescreenSettingsDialog){return homescreenSettingsDialog.show(options).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function bindHomeScreenSettingsIcon(elem,apiClient,userId,userSettings){var btnHomeScreenSettings=elem.querySelector(".btnHomeScreenSettings");btnHomeScreenSettings&&btnHomeScreenSettings.addEventListener("click",function(){showHomeScreenSettings(elem,{serverId:apiClient.serverId(),userId:userId,userSettings:userSettings})})}function getDownloadsSectionHtml(apiClient,user,userSettings){if(!appHost.supports("sync")||!user.Policy.EnableContentDownloading)return Promise.resolve("");var promise=apiClient.getLatestOfflineItems?apiClient.getLatestOfflineItems({Limit:20,Filters:"IsNotFolder"}):Promise.resolve([]);return promise.then(function(items){var html="";html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderMyDownloads")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="

",html+='',html+="
",html+=''),html+="
",html+='
';var cardLayout=!1;return html+=cardBuilder.getCardsHtml({items:items,preferThumb:"auto",shape:"autooverflow",overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),html+="
",html+="
",html+="
"})}function loadLibraryTiles(elem,apiClient,user,userSettings,shape,userViews,allSections){elem.classList.remove("verticalSection");var html="",scrollX=!layoutManager.desktop;return userViews.length&&(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderMyMedia")+"

",layoutManager.tv||(html+=''),html+="
",html+=scrollX?'
':'
',html+=cardBuilder.getCardsHtml({items:userViews,shape:scrollX?"overflowBackdrop":shape,showTitle:!0,centerText:!0,overlayText:!1,lazy:!0,transition:!1,allowBottomPadding:!scrollX,cardClass:scrollX?"overflowHomeLibraryCard":null}),scrollX&&(html+="
"),html+="
",html+="
"),Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem),imageLoader.lazyChildren(elem)})}function loadResumeVideo(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Video"};return apiClient.getResumableItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueWatching")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)},function(){return Promise.resolve()})}function loadResumeAudio(elem,apiClient,userId){var limit,screenWidth=dom.getWindowSize().innerWidth;enableScrollX()?limit=12:(limit=screenWidth>=1920?8:screenWidth>=1600?8:screenWidth>=1200?9:6,limit=Math.min(limit,5));var options={Limit:limit,Recursive:!0,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Thumb",EnableTotalRecordCount:!1,MediaTypes:"Audio"};return apiClient.getResumableItems(userId,options).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderContinueListening")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!1,cardLayout:cardLayout,showYear:!0,lines:2}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.classList.remove("hide")}else elem.classList.add("hide");elem.innerHTML=html,imageLoader.lazyChildren(elem)},function(){return Promise.resolve()})}function loadActiveRecordings(elem,apiClient,userId){apiClient.getLiveTvRecordings({UserId:userId,IsInProgress:!0,Fields:"CanDelete,PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,EnableImageTypes:"Primary,Thumb,Backdrop"}).then(function(result){var html="";if(result.Items.length){html+='

'+globalize.translate("sharedcomponents#HeaderActiveRecordings")+"

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0,action:"none",centerPlayButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function bindUnlockClick(elem){var btnUnlock=elem.querySelector(".btnUnlock");btnUnlock&&btnUnlock.addEventListener("click",function(e){registrationServices.validateFeature("livetv",{viewOnly:!0}).then(function(){dom.parentWithClass(elem,"homeSectionsContainer").dispatchEvent(new CustomEvent("settingschange",{cancelable:!1}))})})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");var promises=[];promises.push(registrationServices.validateFeature("livetv",{viewOnly:!0,showDialog:!1}).then(function(){return!0},function(){return!1}));user.Id;return promises.push(apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"})),Promise.all(promises).then(function(responses){var registered=responses[0],result=responses[1],html="";result.Items.length&®istered?(html+='
',html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTV")+"

",html+="
",enableScrollX()?(html+='",html+="
",html+='
',html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderOnNow")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape(),lines:3,overlayPlayButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"):result.Items.length&&!registered&&(html+='
',html+='

'+globalize.translate("sharedcomponents#LiveTvRequiresUnlock")+"

",html+='",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem),bindUnlockClick(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

'+globalize.translate("sharedcomponents#HeaderNextUp")+"

":(html+='',html+='

',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:!0,shape:getThumbShape(),overlayText:!1,showTitle:!0,showParentTitle:!0,lazy:!0,overlayPlayButton:!0,context:"home",centerText:!cardLayout,allowBottomPadding:!enableScrollX(),cardLayout:cardLayout}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestChannelItems(elem,apiClient,userId,options){return options=Object.assign(options||{},{UserId:userId,SupportsLatestItems:!0,EnableTotalRecordCount:!1}),apiClient.getJSON(apiClient.getUrl("Channels",options)).then(function(result){var channels=result.Items,channelsHtml=channels.map(function(c){return'
'}).join("");elem.innerHTML=channelsHtml;for(var i=0,length=channels.length;i=1600?10:screenWidth>=1440?5:6,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",Filters:"IsUnplayed",UserId:apiClient.getCurrentUserId(),ChannelIds:channel.Id,EnableTotalRecordCount:!1};apiClient.getJSON(apiClient.getUrl("Channels/Items/Latest",options)).then(function(result){var html="";if(result.Items.length){html+='
',html+='
';var text=globalize.translate("sharedcomponents#HeaderLatestFrom").replace("{0}",channel.Name);html+='

'+text+"

",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#More")+""),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,centerText:!0,lazy:!0,showDetailsMenu:!0,overlayPlayButton:!0,allowBottomPadding:!enableScrollX()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"}var elem=page.querySelector("#channel"+channel.Id);elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadLatestLiveTvRecordings(elem,apiClient,userId){return apiClient.getLiveTvRecordings({userId:userId,Limit:enableScrollX()?12:5,Fields:"PrimaryImageAspectRatio,BasicSyncInfo",EnableTotalRecordCount:!1,IsLibraryItem:!1}).then(function(result){var html="";result.Items.length&&(html+='
',html+='

'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+"

",!layoutManager.tv,html+="
"),html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,showParentTitle:!0,coverImage:!0,lazy:!0,showDetailsMenu:!0,centerText:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),preferThumb:!0,cardLayout:!1}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,getDefaultSection:getDefaultSection,loadSections:loadSections}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js index 1fb688c7cb..f0913b99bd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/router.js +++ b/dashboard-ui/bower_components/emby-webcomponents/router.js @@ -1 +1 @@ -define(["loading","globalize","events","viewManager","layoutManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,globalize,events,viewManager,layoutManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?appRouter.showLocalLogin(result.Servers[0].Id):appRouter.showLocalLogin(result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:appRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:appRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){appRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url;url=route.contentPath&&"function"==typeof route.contentPath?route.contentPath(ctx.querystring):route.contentPath||route.path,url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function onForcedLogoutMessageTimeout(){var msg=forcedLogoutMsg;forcedLogoutMsg=null,msg&&require(["alert"],function(alert){alert(msg)})}function showForcedLogoutMessage(msg){forcedLogoutMsg=msg,msgTimeout&&clearTimeout(msgTimeout),msgTimeout=setTimeout(onForcedLogoutMessageTimeout,100)}function onRequestFail(e,data){var apiClient=this;if(401===data.status&&"ParentalControl"===data.errorCode){var isCurrentAllowed=!currentRouteInfo||(currentRouteInfo.route.anonymous||currentRouteInfo.route.startup);isCurrentAllowed||(showForcedLogoutMessage(globalize.translate("sharedcomponents#AccessRestrictedTryAgainLater")),connectionManager.isLoggedIntoConnect()?appRouter.showConnectLogin():appRouter.showLocalLogin(apiClient.serverId()))}}function onBeforeExit(e){browser.web0s&&page.restorePreviousState()}function normalizeImageOptions(options){var height=screen.availHeight;height=Math.min(height,1440);var scaleFactor=height/1080;Math.abs(height-1080)<100&&(scaleFactor=1),layoutManager.tv||(scaleFactor=1);var appImageScaleFactor=browser.tv?.8:1;scaleFactor*=appImageScaleFactor;var setQuality;if(options.maxWidth&&(options.maxWidth=Math.round(options.maxWidth*scaleFactor),setQuality=!0),options.width&&(options.width=Math.round(options.width*scaleFactor),setQuality=!0),options.maxHeight&&(options.maxHeight=Math.round(options.maxHeight*scaleFactor),setQuality=!0),options.height&&(options.height=Math.round(options.height*scaleFactor),setQuality=!0),setQuality){var quality=100,isBackdrop=options.type&&"backdrop"===options.type.toLowerCase();quality=browser.tv||browser.slow?isBackdrop?60:50:isBackdrop?60:90,options.quality=quality}}function onApiClientCreated(e,newApiClient){newApiClient.normalizeImageOptions=normalizeImageOptions,events.off(newApiClient,"requestfail",onRequestFail),events.on(newApiClient,"requestfail",onRequestFail)}function initApiClientOperaTv(apiClient){apiClient.detectBitrate=function(){return Promise.resolve(17e7)}}function initApiClient(apiClient){(browser.operaTv||browser.web0s)&&initApiClientOperaTv(apiClient),onApiClientCreated({},apiClient)}function initApiClients(){connectionManager.getApiClients().forEach(initApiClient),events.on(connectionManager,"apiclientcreated",onApiClientCreated)}function onAppResume(){var apiClient=connectionManager.currentApiClient();apiClient&&apiClient.ensureWebSocket()}function start(options){loading.show(),initApiClients(),events.on(appHost,"beforeexit",onBeforeExit),events.on(appHost,"resume",onAppResume),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("appRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("appRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("appRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("appRouter - loading skin home page"),void loadUserSkinWithOptions(ctx);if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){callback()},beginConnectionWizard)}console.log("appRouter - proceeding to "+pathname),callback()}}function loadUserSkinWithOptions(ctx){require(["queryString"],function(queryString){var params=queryString.parse(ctx.querystring);skinManager.loadUserSkin({start:params.start})})}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function endsWith(str,srch){return str.lastIndexOf(srch)===srch.length-1}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return"downloads"===item?"offline/offline.html":"managedownloads"===item?"offline/managedownloads.html":skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=appRouter.getRouteUrl(item,options);appRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}function invokeShortcut(id){0===id.indexOf("library-")?(id=id.replace("library-",""),id=id.split("_"),appRouter.showItem(id[0],id[1])):(id=id.split("_"),appRouter.show(appRouter.getRouteUrl(id[0],{serverId:id[1]})))}var currentViewLoadRequest,msgTimeout,forcedLogoutMsg,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,appRouter={showLocalLogin:function(serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showConnectLogin:function(){show("/startup/connectlogin.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide({serverId:connectionManager.currentApiClient().serverId()})},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV({serverId:connectionManager.currentApiClient().serverId()})},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],endsWith(baseRoute,"/")&&!endsWith(baseRoute,"://")&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),appRouter.addRoute=addRoute,appRouter.param=param,appRouter.back=back,appRouter.show=show,appRouter.start=start,appRouter.baseUrl=baseUrl,appRouter.canGoBack=canGoBack,appRouter.current=current,appRouter.beginConnectionWizard=beginConnectionWizard,appRouter.goHome=goHome,appRouter.showItem=showItem,appRouter.setTitle=setTitle,appRouter.setTransparency=setTransparency,appRouter.getRoutes=getRoutes,appRouter.getRouteUrl=getRouteUrl,appRouter.pushState=pushState,appRouter.enableNativeHistory=enableNativeHistory,appRouter.showVideoOsd=showVideoOsd,appRouter.handleAnchorClick=page.handleAnchorClick,appRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},appRouter.invokeShortcut=invokeShortcut,appRouter}); \ No newline at end of file +define(["loading","globalize","events","viewManager","layoutManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,globalize,events,viewManager,layoutManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?appRouter.showLocalLogin(result.Servers[0].Id):appRouter.showLocalLogin(result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:appRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:appRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){appRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url;url=route.contentPath&&"function"==typeof route.contentPath?route.contentPath(ctx.querystring):route.contentPath||route.path,url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function onForcedLogoutMessageTimeout(){var msg=forcedLogoutMsg;forcedLogoutMsg=null,msg&&require(["alert"],function(alert){alert(msg)})}function showForcedLogoutMessage(msg){forcedLogoutMsg=msg,msgTimeout&&clearTimeout(msgTimeout),msgTimeout=setTimeout(onForcedLogoutMessageTimeout,100)}function onRequestFail(e,data){var apiClient=this;if(401===data.status&&"ParentalControl"===data.errorCode){var isCurrentAllowed=!currentRouteInfo||(currentRouteInfo.route.anonymous||currentRouteInfo.route.startup);isCurrentAllowed||(showForcedLogoutMessage(globalize.translate("sharedcomponents#AccessRestrictedTryAgainLater")),connectionManager.isLoggedIntoConnect()?appRouter.showConnectLogin():appRouter.showLocalLogin(apiClient.serverId()))}}function onBeforeExit(e){browser.web0s&&page.restorePreviousState()}function normalizeImageOptions(options){var height=screen.availHeight;height=Math.min(height,1440);var scaleFactor=height/1080;Math.abs(height-1080)<100&&(scaleFactor=1),layoutManager.tv||(scaleFactor=1);var appImageScaleFactor=browser.tv?.8:1;scaleFactor*=appImageScaleFactor;var setQuality;if(options.maxWidth&&(options.maxWidth=Math.round(options.maxWidth*scaleFactor),setQuality=!0),options.width&&(options.width=Math.round(options.width*scaleFactor),setQuality=!0),options.maxHeight&&(options.maxHeight=Math.round(options.maxHeight*scaleFactor),setQuality=!0),options.height&&(options.height=Math.round(options.height*scaleFactor),setQuality=!0),setQuality){var quality=100,isBackdrop=options.type&&"backdrop"===options.type.toLowerCase();quality=browser.tv||browser.slow?isBackdrop?60:50:isBackdrop?60:90,options.quality=quality}}function onApiClientCreated(e,newApiClient){newApiClient.normalizeImageOptions=normalizeImageOptions,events.off(newApiClient,"requestfail",onRequestFail),events.on(newApiClient,"requestfail",onRequestFail)}function initApiClientOperaTv(apiClient){apiClient.detectBitrate=function(){return Promise.resolve(17e7)}}function initApiClient(apiClient){browser.operaTv&&initApiClientOperaTv(apiClient),onApiClientCreated({},apiClient)}function initApiClients(){connectionManager.getApiClients().forEach(initApiClient),events.on(connectionManager,"apiclientcreated",onApiClientCreated)}function onAppResume(){var apiClient=connectionManager.currentApiClient();apiClient&&apiClient.ensureWebSocket()}function start(options){loading.show(),initApiClients(),events.on(appHost,"beforeexit",onBeforeExit),events.on(appHost,"resume",onAppResume),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("appRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("appRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("appRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("appRouter - loading skin home page"),void loadUserSkinWithOptions(ctx);if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){callback()},beginConnectionWizard)}console.log("appRouter - proceeding to "+pathname),callback()}}function loadUserSkinWithOptions(ctx){require(["queryString"],function(queryString){var params=queryString.parse(ctx.querystring);skinManager.loadUserSkin({start:params.start})})}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function endsWith(str,srch){return str.lastIndexOf(srch)===srch.length-1}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return"downloads"===item?"offline/offline.html":"managedownloads"===item?"offline/managedownloads.html":skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=appRouter.getRouteUrl(item,options);appRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}function invokeShortcut(id){0===id.indexOf("library-")?(id=id.replace("library-",""),id=id.split("_"),appRouter.showItem(id[0],id[1])):(id=id.split("_"),appRouter.show(appRouter.getRouteUrl(id[0],{serverId:id[1]})))}var currentViewLoadRequest,msgTimeout,forcedLogoutMsg,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,appRouter={showLocalLogin:function(serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showConnectLogin:function(){show("/startup/connectlogin.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide({serverId:connectionManager.currentApiClient().serverId()})},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV({serverId:connectionManager.currentApiClient().serverId()})},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],endsWith(baseRoute,"/")&&!endsWith(baseRoute,"://")&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),appRouter.addRoute=addRoute,appRouter.param=param,appRouter.back=back,appRouter.show=show,appRouter.start=start,appRouter.baseUrl=baseUrl,appRouter.canGoBack=canGoBack,appRouter.current=current,appRouter.beginConnectionWizard=beginConnectionWizard,appRouter.goHome=goHome,appRouter.showItem=showItem,appRouter.setTitle=setTitle,appRouter.setTransparency=setTransparency,appRouter.getRoutes=getRoutes,appRouter.getRouteUrl=getRouteUrl,appRouter.pushState=pushState,appRouter.enableNativeHistory=enableNativeHistory,appRouter.showVideoOsd=showVideoOsd,appRouter.handleAnchorClick=page.handleAnchorClick,appRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},appRouter.invokeShortcut=invokeShortcut,appRouter}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json index 2e600d6445..1bae0918a8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "\u0627\u0644\u0644\u063a\u0629:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/bg-bg.json b/dashboard-ui/bower_components/emby-webcomponents/strings/bg-bg.json index 7055ede800..20283c28d7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/bg-bg.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/bg-bg.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,16 +81,27 @@ "NewCollection": "\u041d\u043e\u0432\u0430 \u043a\u043e\u043b\u0435\u043a\u0446\u0438\u044f", "LabelCollection": "\u041a\u043e\u043b\u0435\u043a\u0446\u0438\u044f:", "Help": "\u041f\u043e\u043c\u043e\u0449", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "\u0422\u044a\u0440\u0441\u0438 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0437\u0430 \u0438\u0437\u043a\u0443\u0441\u0442\u0432\u043e \u0438 \u043c\u0435\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u0418\u043c\u0435:", "NewCollectionNameExample": "\u041f\u0440\u0438\u043c\u0435\u0440: \u043a\u043e\u043b\u0435\u043a\u0446\u0438\u044f \u041c\u0435\u0436\u0434\u0443\u0437\u0432\u0435\u0437\u0434\u043d\u0438 \u0432\u043e\u0439\u043d\u0438", "MessageItemsAdded": "Items added.", "OptionNew": "New...", "LabelPlaylist": "Playlist:", - "AddToPlaylist": "Add to playlist", - "HeaderAddToPlaylist": "Add to Playlist", + "AddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043a\u044a\u043c \u0441\u043f\u0438\u0441\u044a\u043a", + "HeaderAddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043a\u044a\u043c \u0441\u043f\u0438\u0441\u044a\u043a", "Subtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u0438", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "\u0415\u0437\u0438\u043a:", "Search": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435", @@ -89,9 +111,9 @@ "ConfirmDeletion": "Confirm Deletion", "MySubtitles": "My Subtitles", "MessageDownloadQueued": "Download queued.", - "EditSubtitles": "Edit subtitles", + "EditSubtitles": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0438\u0442\u0435", "UnlockGuide": "Unlock Guide", - "RefreshMetadata": "Refresh metadata", + "RefreshMetadata": "\u041e\u043f\u0440\u0435\u0441\u043d\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u0438\u0442\u0435", "ReplaceExistingImages": "Replace existing images", "ReplaceAllMetadata": "Replace all metadata", "SearchForMissingMetadata": "Search for missing metadata", @@ -112,10 +134,10 @@ "Play": "\u041f\u0443\u0441\u043a\u0430\u043d\u0435", "AddToPlayQueue": "Add to play queue", "Shuffle": "Shuffle", - "Identify": "Identify", - "EditImages": "Edit images", - "EditInfo": "Edit info", - "Sync": "Sync", + "Identify": "\u0420\u0430\u0437\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0435", + "EditImages": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u0430", + "EditInfo": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u0438\u0442\u0435", + "Sync": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u0430\u043d\u0435", "InstantMix": "Instant mix", "ViewAlbum": "View album", "ViewArtist": "View artist", @@ -128,7 +150,7 @@ "Trailer": "\u0422\u0440\u0435\u0439\u043b\u044a\u0440", "MarkPlayed": "\u041e\u0442\u0431\u0435\u043b\u044f\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u043f\u0443\u0441\u043a\u0430\u043d\u043e", "MarkUnplayed": "\u041e\u0442\u0431\u0435\u043b\u044f\u0437\u0432\u0430\u043d\u0435 \u043a\u0430\u0442\u043e \u043d\u0435\u043f\u0443\u0441\u043a\u0430\u043d\u043e", - "GroupVersions": "Group versions", + "GroupVersions": "\u0413\u0440\u0443\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438\u0442\u0435", "PleaseSelectTwoItems": "Please select at least two items.", "TryMultiSelect": "Try Multi-Select", "TryMultiSelectMessage": "To edit multiple media items, just click and hold any poster and select the items you want to manage. Try it!", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "\u0414\u044a\u0440\u0436\u0430\u0432\u0438", "Genres": "\u0416\u0430\u043d\u0440\u043e\u0432\u0435", "Studios": "\u0421\u0442\u0443\u0434\u0438\u0430", @@ -280,8 +303,8 @@ "Screenshots": "\u0421\u043d\u0438\u043c\u043a\u0438 \u043d\u0430 \u0435\u043a\u0440\u0430\u043d\u0430", "MoveRight": "Move right", "MoveLeft": "Move left", - "ConfirmDeleteImage": "Delete image?", - "HeaderEditImages": "Edit Images", + "ConfirmDeleteImage": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e?", + "HeaderEditImages": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0442\u0430", "Settings": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438", "ShowIndicatorsFor": "Show indicators for:", "NewEpisodes": "\u041d\u043e\u0432\u0438 \u0435\u043f\u0438\u0437\u043e\u0434\u0438", @@ -298,7 +321,7 @@ "HeaderCancelSeries": "Cancel Series", "HeaderKeepSeries": "Keep Series", "HeaderLearnMore": "Learn More", - "DeleteMedia": "Delete media", + "DeleteMedia": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0434\u0438\u044f\u0442\u0430", "SeriesSettings": "Series settings", "HeaderRecordingOptions": "Recording Options", "CancelSeries": "Cancel series", @@ -389,7 +412,7 @@ "Accept": "Accept", "Reject": "Reject", "Connect": "Connect", - "HeaderMyMedia": "My Media", + "HeaderMyMedia": "\u041c\u043e\u044f\u0442\u0430 \u043c\u0435\u0434\u0438\u044f", "HeaderMyMediaSmall": "My Media (small)", "LatestFromLibrary": "Latest {0}", "HeaderLatestChannelMedia": "Latest Channel Items", @@ -418,9 +441,9 @@ "PlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later or contact your system administrator for details.", "PlaybackErrorPlaceHolder": "Please insert the disc in order to play this video.", "Guide": "Guide", - "Suggestions": "Suggestions", + "Suggestions": "\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f", "Favorites": "Favorites", - "Collections": "Collections", + "Collections": "\u041a\u043e\u043b\u0435\u043a\u0446\u0438\u0438", "LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:", "LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.", "Shows": "Shows", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json index 84347b6599..4d7d8e9e3d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Activa aquesta funcionalitat amb un \u00fanic pagament, o amb una subscripci\u00f3 activa d'Emby Premiere.", "MessageUnlockAppWithSupporter": "Activa aquesta funcionalitat amb una subscripci\u00f3 activa d'Emby Premiere.", "MessageToValidateSupporter": "Si tens una subscripci\u00f3 activa d'Emby Premiere assegura't que l'has configurat al teu tauler de control de l'Emby Server, on pots accedir clicant a l'opci\u00f3 d'Emby Premiere al men\u00fa principal.", @@ -70,8 +81,17 @@ "NewCollection": "Nova Col\u00b7lecci\u00f3", "LabelCollection": "Col\u00b7lecci\u00f3:", "Help": "Ajuda", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Les col\u00b7leccions et permeten crear agrupacions personalitzades de pel\u00b7l\u00edcules i altres continguts.", "SearchForCollectionInternetMetadata": "Cerca a internet artwork i metadades", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nom:", "NewCollectionNameExample": "Exemple: Col\u00b7leci\u00f3 Star Wars", "MessageItemsAdded": "\u00cdtems afegits.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Afegeix a la llista de reproducci\u00f3", "HeaderAddToPlaylist": "Afegir a la llista de reproducci\u00f3", "Subtitles": "Subt\u00edtols", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Cerca Subt\u00edtols", "LabelLanguage": "Idioma:", "Search": "Cerca", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Identificadors externs:", "HeaderDisplaySettings": "Opcions de Visualitzaci\u00f3", "LabelDisplayOrder": "Ordre de visualitzaci\u00f3:", + "Display": "Display", "Countries": "Pa\u00efsos", "Genres": "G\u00e8neres", "Studios": "Estudis", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json b/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json index f8f5c72920..5988c0ad3f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Odemknout tuto funkci pomoc\u00ed jednor\u00e1zov\u00e9 platby, nebo pomoc\u00ed aktivace p\u0159edplatn\u00e9ho Emby Premiere.", "MessageUnlockAppWithSupporter": "Odemknout tuto funkci pomoc\u00ed aktivn\u00edho p\u0159edplatn\u00e9ho Emby Premiere.", "MessageToValidateSupporter": "Pokud m\u00e1te aktivn\u00ed p\u0159edplatn\u00e9 Emby Premiere, ujist\u011bte se, \u017ee m\u00e1te nastaven Emby Premiere v panelu Nastaven\u00ed pod N\u00e1pov\u011bda -> Emby Premiere.", @@ -70,8 +81,17 @@ "NewCollection": "Nov\u00e1 kolekce", "LabelCollection": "Kolekce:", "Help": "N\u00e1pov\u011bda", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Kolekce dovol\u00ed vytvo\u0159it personalizovan\u00e9 seskupen\u00ed film\u016f a dal\u0161\u00edho obsahu knihoven.", "SearchForCollectionInternetMetadata": "Vyhledat metadata a obr\u00e1zky na Internetu.", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Jm\u00e9no:", "NewCollectionNameExample": "P\u0159\u00edklad: Kolekce Star Wars", "MessageItemsAdded": "Polo\u017eka p\u0159id\u00e1na.", @@ -80,6 +100,8 @@ "AddToPlaylist": "P\u0159idat do playlistu", "HeaderAddToPlaylist": "P\u0159idat do playlistu", "Subtitles": "Titulky", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Vyhledat titulky", "LabelLanguage": "Jazyk:", "Search": "Vyhled\u00e1v\u00e1n\u00ed", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Nastaven\u00ed zobrazen\u00ed", "LabelDisplayOrder": "Po\u0159ad\u00ed zobrazen\u00ed:", + "Display": "Display", "Countries": "Zem\u011b", "Genres": "\u017d\u00e1nry", "Studios": "Studia", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json index aebf25a391..e1b2db8f74 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "L\u00e5s op for dette feature med en lille enkeltst\u00e5ende betaling, eller med et aktivt Emby Premiere abonnement.", "MessageUnlockAppWithSupporter": "L\u00e5s op for dette feature med et aktivt Emby Premiere abonnement.", "MessageToValidateSupporter": "Hvis du har et aktivt Emby Premiere abonnement, skal du v\u00e6re sikker p\u00e5 at Emby Premiere er konfigureret i dit Emby Server-kontrolpanel, som kan tilg\u00e5es ved at klikke p\u00e5 Emby Premiere i hovedmenuen.", @@ -70,8 +81,17 @@ "NewCollection": "Ny samling", "LabelCollection": "Samling:", "Help": "Hj\u00e6lp", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Samlinger lader dig oprette personaliserede grupper af film og andet biblioteksindhold.", "SearchForCollectionInternetMetadata": "S\u00f8g p\u00e5 internettet efter billeder og metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Navn:", "NewCollectionNameExample": "Eksempel: Star Wars samling", "MessageItemsAdded": "Emne tilf\u00f8jet.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Tilf\u00f8j til afspilningsliste", "HeaderAddToPlaylist": "Tilf\u00f8j til afspilningsliste", "Subtitles": "Undertekster", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "S\u00f8g efter undertekster", "LabelLanguage": "Sprog:", "Search": "S\u00f8g", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Eksterne ID'er:", "HeaderDisplaySettings": "Visningsindstillinger", "LabelDisplayOrder": "Visningsorden:", + "Display": "Display", "Countries": "Lande", "Genres": "Genre", "Studios": "Studier", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json index 11e0d52ee0..177a1aaa5c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Nach Hochfahren automatisch starten", + "Desktop": "Desktop", + "Mobile": "Mobil \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Bildschirmmodus:", + "DisplayModeHelp": "Bitte w\u00e4hle den Typ des Bildschirms auf dem Du Emby verwendest.", + "EnableThemeVideos": "Altiviere Titelvideos", + "EnableThemeVideosHelp": "Wenn aktiviert, wird ein Titelvideo w\u00e4hrend dem Durchsuchen durch die Bibliothek im Hintergrund abgespielt.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Schalte diese Funktion mit einer kleinen einmaligen Geb\u00fchr oder einem aktiven Emby Premium Abo frei.", "MessageUnlockAppWithSupporter": "Schalte diese Funktion mit einem aktiven Emby Premium Abo frei.", "MessageToValidateSupporter": "Wenn du eine aktive Emby Premiere Mitgliedschaft hast, stelle bitte sicher, dass du diese \u00fcber das Emby Server Dashboard eingerichtet hast (Hauptmenu -> Emby Premiere).", @@ -6,7 +17,7 @@ "Share": "Teilen", "Add": "Hinzuf\u00fcgen", "ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuche bitte {0}", - "LiveTvRequiresUnlock": "Live TV requires an active Emby Premiere subscription.", + "LiveTvRequiresUnlock": "Live TV ben\u00f6tigt eine aktive Emby Premiere Mitgliedschaft.", "AttributeNew": "Neu", "Premiere": "Premiere", "Live": "Live", @@ -70,8 +81,17 @@ "NewCollection": "Neue Collection", "LabelCollection": "Sammlung:", "Help": "Hilfe", + "LabelDisplayLanguage": "Anzeigesprache:", + "LabelDisplayLanguageHelp": "Die \u00dcbersetzung von Emby ist ein laufendes Projekt.", + "LearnHowYouCanContribute": "Erfahre, wie du unterst\u00fctzen kannst.", "NewCollectionHelp": "Sammlungen erm\u00f6glichen personallisierte Gruppen von Filmen oder anderen Medien.", "SearchForCollectionInternetMetadata": "Suche im Internet nach Bildmaterial und Metadaten", + "DisplayMissingEpisodesWithinSeasons": "Zeige fehlende Episoden innerhalb von Staffeln", + "DisplayMissingEpisodesWithinSeasonsHelp": "Dies sollte auch f\u00fcr Serienbibliotheken in den Emby Server Einstellungen aktiviert sein.", + "EnableThemeSongs": "Aktiviere Titelmelodien", + "EnableBackdrops": "Aktiviere Hintergr\u00fcnde", + "EnableThemeSongsHelp": "Wenn aktiviert, wird Titelmusik w\u00e4hrend des Browsens durch die Bibliothek im Hintergrund abgespielt.", + "EnableBackdropsHelp": "Wenn aktiviert, werden w\u00e4hrend des Browsens durch die Bibliothek auf einigen Seiten passende Hintergr\u00fcnde angezeigt.", "LabelName": "Name:", "NewCollectionNameExample": "Beispiel: Star Wars Collection", "MessageItemsAdded": "Eintr\u00e4ge hinzugef\u00fcgt", @@ -80,6 +100,8 @@ "AddToPlaylist": "Hinzuf\u00fcgen zur Wiedergabeliste", "HeaderAddToPlaylist": "Zur Wiedergabeliste hinzuf\u00fcgen", "Subtitles": "Untertitel", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server Dashboard Theme:", "SearchForSubtitles": "Suche nach Untertiteln", "LabelLanguage": "Sprache:", "Search": "Suche", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Externe IDs:", "HeaderDisplaySettings": "Anzeige Einstellungen", "LabelDisplayOrder": "Anzeigereihenfolge:", + "Display": "Anzeige", "Countries": "L\u00e4nder", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/el.json b/dashboard-ui/bower_components/emby-webcomponents/strings/el.json index dc39641103..05feac54c4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/el.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/el.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "\u039e\u03b5\u03ba\u03bb\u03b5\u03b9\u03b4\u03ce\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03ba\u03b1\u03c4\u03b1\u03b2\u03ac\u03bb\u03bf\u03bd\u03c4\u03b1\u03c2 \u03ad\u03bd\u03b1 \u03c0\u03bf\u03bb\u03cd \u03bc\u03b9\u03ba\u03c1\u03cc \u03ba\u03cc\u03c3\u03c4\u03bf\u03c2 \u03ae \u03bc\u03b5 \u03bc\u03af\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ae \u03c3\u03c4\u03bf Emby Premiere.", "MessageUnlockAppWithSupporter": "\u039e\u03b5\u03ba\u03bb\u03b5\u03b9\u03b4\u03ce\u03c3\u03c4\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03b7\u03c1\u03b9\u03c3\u03c4\u03b9\u03ba\u03cc \u03bc\u03b5 \u03bc\u03af\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae \u03c3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ae \u03c3\u03c4\u03bf Emby Premiere.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\u039d\u03ad\u03b1 \u03a3\u03c5\u03bb\u03bb\u03bf\u03b3\u03ae", "LabelCollection": "\u03a3\u03c5\u03bb\u03bb\u03bf\u03b3\u03ae:", "Help": "\u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03c3\u03c4\u03bf \u03b4\u03b9\u03b1\u03b4\u03af\u03ba\u03c4\u03c5\u03bf \u03b3\u03b9\u03b1 \u03b5\u03be\u03ce\u03c6\u03c5\u03bb\u03bb\u03bf \u03ba\u03b1\u03b9 \u03c0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u038c\u03bd\u03bf\u03bc\u03b1:", "NewCollectionNameExample": "\u03a0\u03b1\u03c1\u03ac\u03b4\u03b5\u03b9\u03b3\u03bc\u03b1: \u03a3\u03c5\u03bb\u03bb\u03bf\u03b3\u03ae \"\u03a0\u03cc\u03bb\u03b5\u03bc\u03bf\u03c2 \u03c4\u03c9\u03bd \u0386\u03c3\u03c4\u03c1\u03c9\u03bd\"", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5 \u03c3\u03b5 \u03bb\u03af\u03c3\u03c4\u03b1", "HeaderAddToPlaylist": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5 \u03c3\u03b5 \u039b\u03af\u03c3\u03c4\u03b1", "Subtitles": "\u03a5\u03c0\u03cc\u03c4\u03b9\u03c4\u03bb\u03bf\u03b9", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7 \u03a5\u03c0\u03bf\u03c4\u03af\u03c4\u03bb\u03c9\u03bd", "LabelLanguage": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1", "Search": "\u0391\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-gb.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-gb.json index 706201e181..033224bb63 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-gb.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-gb.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalised groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Language:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External IDs:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json index ac36d5bdbd..ddabf28e6a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-us.json @@ -70,8 +70,28 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayMode": "Display mode:", + "Desktop": "Desktop", + "Mobile": "Mobile / Tablet", + "TV": "TV", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "RunAtStartup": "Run at startup", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Language:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-ar.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-ar.json index 3a843d0be1..19eb25ad87 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-ar.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-ar.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Ejemplo: Colecci\u00f3n de Star Wars", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Language:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json index 219f79a589..e5e23f377d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Desbloquee esta caracter\u00edstica con una peque\u00f1a compra \u00fanica, o con una suscripci\u00f3n activa de Emby Premier.", "MessageUnlockAppWithSupporter": "Desbloquee esta caracter\u00edstica con una suscripci\u00f3n activa de Emby Premier.", "MessageToValidateSupporter": "Si tiene una subscripci\u00f3n de Emby Premiere activa, aseg\u00farese de que ha configurado Emby Premiere en el Panel de Control del Servidor Emby, al cual puede acceder dando click en Emby Premiere dentro del men\u00fa principal.", @@ -6,7 +17,7 @@ "Share": "Compartir", "Add": "Agregar", "ServerUpdateNeeded": "Este Servidor Emby necesita ser actualizado. Para descargar la ultima versi\u00f3n, por favor visite {0}", - "LiveTvRequiresUnlock": "Live TV requires an active Emby Premiere subscription.", + "LiveTvRequiresUnlock": "TV en vivo requiere una subscripci\u00f3n activa de Emby Premiere", "AttributeNew": "Nuevo", "Premiere": "Premier", "Live": "En Vivo", @@ -42,7 +53,7 @@ "HeaderOfflineDownloads": "Medios sin conexion", "HeaderOfflineDownloadsDescription": "Descargue sus medios en su dispositivo para f\u00e1cil uso mientras esta desconectado.", "CloudSyncFeatureDescription": "Sincronice sus medios a la nube para un f\u00e1cil respaldo, archivo y conversi\u00f3n.", - "LiveTvFeatureDescription": "Stream Live TV to any Emby app, with a compatible TV tuner device installed on your Emby Server.", + "LiveTvFeatureDescription": "Transmita TV en vivo a una aplicaci\u00f3n Emby, instalando un dispositivo sintonizador de TV compatible con su Servidor Emby", "DvrFeatureDescription": "Programe grabaciones individuales de TV en Vivo, series, y mas con Emby DVR.", "CinemaModeFeatureDescription": "El Modo Cine le da una verdadera experiencia de cine con trailers e intros personalizados antes de la funci\u00f3n.", "HeaderFreeApps": "Aplicaciones Emby Gratuitas", @@ -70,8 +81,17 @@ "NewCollection": "Nueva Colecci\u00f3n", "LabelCollection": "Colecci\u00f3n:", "Help": "Ayuda", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Las colecciones le permiten disfrutar de agrupaciones personalizadas de pel\u00edculas y otros contenidos de la biblioteca.", "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nombre:", "NewCollectionNameExample": "Ejemplo: Colecci\u00f3n Guerra de las Galaxias", "MessageItemsAdded": "\u00cdtems agregados.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Agregar a lista de reproducci\u00f3n", "HeaderAddToPlaylist": "Agregar a Lista de Reproducci\u00f3n", "Subtitles": "Subt\u00edtulos", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Buscar Subtitulos", "LabelLanguage": "Idioma:", "Search": "Buscar", @@ -168,8 +190,8 @@ "FormatValue": "Formato: {0}", "DownloadsValue": "Descargas: {0}", "PerfectMatch": "Coincidencia exacta", - "EnableExternalVideoPlayers": "Enable external video players", - "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "EnableExternalVideoPlayers": "Habilitar reproductores externos de video", + "EnableExternalVideoPlayersHelp": "Un men\u00fa de reproductor externo se mostrara cuando inicie la reproducci\u00f3n de un video.", "HeaderAlternateEpisodeNumbers": "N\u00fameros de Episodio Alternativos:", "LabelDvdSeasonNumber": "N\u00famero de temporada del DVD:", "LabelDvdEpisodeNumber": "N\u00famero de episodio de DVD:", @@ -181,6 +203,7 @@ "HeaderExternalIds": "IDs Externos:", "HeaderDisplaySettings": "Configuraci\u00f3n de Pantalla", "LabelDisplayOrder": "Orden para mostrar:", + "Display": "Display", "Countries": "Pa\u00edses", "Genres": "G\u00e9neros", "Studios": "Estudios", @@ -407,9 +430,9 @@ "Up": "Arriba", "Down": "Abajo", "HeaderHomeScreen": "Pantalla de Inicio", - "HeaderHomeScreenContent": "Home Screen Content", + "HeaderHomeScreenContent": "Contenido de la Pantalla de Inicio", "HeaderLatestChannelItems": "\u00cdtems Recientes de Canales", - "LabelSelectHomeScreenItemsFolders": "Allow items to appear on my home screen from:", + "LabelSelectHomeScreenItemsFolders": "Permitir items en mi pantalla de inicio de:", "HeaderLibraryOrder": "Orden de Bibliotecas", "HideWatchedContentFromLatestMedia": "Ocultar contenido ya visto de Agregadas Recientemente", "HeaderOnNow": "Transmiti\u00e9ndo Ahora", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es.json index 1b0a2da287..f93daf07bd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Escritorio", + "Mobile": "M\u00f3vil \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Modo de visualizaci\u00f3n:", + "DisplayModeHelp": "Seleccione el tipo de pantalla que est\u00e1 ejecutando Emby.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Desbloquea esta caracter\u00edstica con una peque\u00f1a compra una vez o con una suscripci\u00f3n a Emby Premiere.", "MessageUnlockAppWithSupporter": "Desbloquea esta caracter\u00edstica con una suscripci\u00f3n a Emby Premiere.", "MessageToValidateSupporter": "Si tienes una suscripci\u00f3n a Emby Premiere aseg\u00farate de que la has configurado en el Panel de Control de tu servidor Emby en Ayuda -> Emby Premiere.", @@ -39,8 +50,8 @@ "HeaderCloudSync": "Sincronizaci\u00f3n en la nube", "Downloads": "Descargas", "HeaderMyDownloads": "Mis Descargas", - "HeaderOfflineDownloads": "Offline Media", - "HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", + "HeaderOfflineDownloads": "Medios fuera de l\u00ednea", + "HeaderOfflineDownloadsDescription": "Descargue los medios a sus dispositivos para un uso sin conexi\u00f3n.", "CloudSyncFeatureDescription": "Sincroniza tus medios en la nube para una copia de seguridad, archivado y conversi\u00f3n f\u00e1cil.", "LiveTvFeatureDescription": "Stream Live TV to any Emby app, with a compatible TV tuner device installed on your Emby Server.", "DvrFeatureDescription": "Schedule individual Live TV recordings, series recordings, and more with Emby DVR.", @@ -70,8 +81,17 @@ "NewCollection": "Nueva colecci\u00f3n", "LabelCollection": "Colecci\u00f3n:", "Help": "Ayuda", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nombre:", "NewCollectionNameExample": "Ejemplo: Colecci\u00f3n de Star Wars", "MessageItemsAdded": "Items a\u00f1adidos", @@ -80,6 +100,8 @@ "AddToPlaylist": "A\u00f1adir a la lista de reproducci\u00f3n", "HeaderAddToPlaylist": "A\u00f1adir a la lista", "Subtitles": "Subt\u00edtulos", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "B\u00fasqueda de Subt\u00edtulos", "LabelLanguage": "Idioma:", "Search": "Buscar", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Ids externos:", "HeaderDisplaySettings": "Opciones de pantalla", "LabelDisplayOrder": "Mostrar orden:", + "Display": "Display", "Countries": "Pa\u00edses", "Genres": "G\u00e9neros", "Studios": "Estudios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json index 0cab1763fe..8f4975a003 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Kieli:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr-ca.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr-ca.json index 680d68db9f..64d27f0318 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr-ca.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr-ca.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un petit achat unique ou avec un abonnement Emby Premiere actif.", "MessageUnlockAppWithSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un abonnement Emby Premi\u00e8re actif.", "MessageToValidateSupporter": "Si vous avez un abonnement Emby Premi\u00e8re actif, assurez-vous d'avoir install\u00e9 Emby Premi\u00e8re sur le tableau de bord de votre serveur Emby, auquel vous pouvez acc\u00e9der en cliquant sur Emby Premi\u00e8re dans le menu principal.", @@ -70,8 +81,17 @@ "NewCollection": "Nouvelle Collection", "LabelCollection": "Collection:", "Help": "Aide", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Les collections vous permettent de cr\u00e9er des regroupements personnalis\u00e9s de films et d'autres contenus de la biblioth\u00e8que.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nom:", "NewCollectionNameExample": "Exemple: Collection Star Wars", "MessageItemsAdded": "\u00c9l\u00e9ments ajout\u00e9s.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Ajouter \u00e0 la liste de lecture", "HeaderAddToPlaylist": "Ajouter \u00e0 la liste de lecture", "Subtitles": "Sous-titres", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Rechercher des sous-titres", "LabelLanguage": "Langage:", "Search": "Rechercher", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json index 247f7ec880..c25cc9652f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Bureau", + "Mobile": "Mobile \/ Tablette", + "TV": "TV", + "LabelDisplayMode": "Mode d'affichage :", + "DisplayModeHelp": "S\u00e9lectionner le type d'\u00e9cran sur lequel vous utilisez Emby.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un petit achat unique, ou avec un abonnement Emby Premiere.", "MessageUnlockAppWithSupporter": "D\u00e9verrouillez cette fonctionnalit\u00e9 avec un abonnement Emby Premiere.", "MessageToValidateSupporter": "Si vous avez un abonnement Emby Premiere, veuillez vous assurer que vous avez configur\u00e9 Emby Premiere dans le tableau de bord de votre serveur Emby auquel vous pouvez acc\u00e9der en cliquant sur Emby Premiere dans le menu principal", @@ -6,7 +17,7 @@ "Share": "Partager", "Add": "Ajouter", "ServerUpdateNeeded": "Le serveur Emby doit \u00eatre mis \u00e0 jour. Pour t\u00e9l\u00e9charger la derni\u00e8re version, veuillez visiter {0}", - "LiveTvRequiresUnlock": "Live TV requires an active Emby Premiere subscription.", + "LiveTvRequiresUnlock": "La TV en direct n\u00e9cessite un abonnement Emby Premiere.", "AttributeNew": "Nouveau", "Premiere": "Premiere", "Live": "En direct", @@ -70,8 +81,17 @@ "NewCollection": "Nouvelle collection", "LabelCollection": "Collection\u00a0:", "Help": "Aide", + "LabelDisplayLanguage": "Langue d'affichage :", + "LabelDisplayLanguageHelp": "La traduction d'Emby est un projet en cours.", + "LearnHowYouCanContribute": "Voir comment vous pouvez contribuer.", "NewCollectionHelp": "Les collections vous permettent de cr\u00e9er des groupes personnalis\u00e9s de films et d'autres contenus.", "SearchForCollectionInternetMetadata": "Rechercher sur Internet les images et les m\u00e9tadonn\u00e9es", + "DisplayMissingEpisodesWithinSeasons": "Afficher les \u00e9pisodes manquants dans les saisons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Activer les th\u00e8mes musicaux", + "EnableBackdrops": "Activer les images d'arri\u00e8re-plans", + "EnableThemeSongsHelp": "Si activ\u00e9, les th\u00e8mes musicaux seront lus en arri\u00e8re-plan pendant la navigation dans la m\u00e9diath\u00e8que.", + "EnableBackdropsHelp": "Si activ\u00e9, les images d'arri\u00e8re-plan seront affich\u00e9es sur certaines pages pendant la navigation dans la m\u00e9diath\u00e8que.", "LabelName": "Nom\u00a0:", "NewCollectionNameExample": "Exemple\u00a0: Collection Star Wars", "MessageItemsAdded": " \u00c9l\u00e9ments ajout\u00e9s.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Ajouter \u00e0 la liste de lecture", "HeaderAddToPlaylist": "Ajouter \u00e0 la liste de lecture", "Subtitles": "Sous-titres", + "LabelTheme": "Th\u00e8me\u00a0:", + "LabelDashboardTheme": "Th\u00e8me du tableau de bord du serveur\u00a0:", "SearchForSubtitles": "Rechercher des sous-titres", "LabelLanguage": "Langue\u00a0:", "Search": "Recherche", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Identifiants externes\u00a0:", "HeaderDisplaySettings": "Param\u00e8tres d'affichage", "LabelDisplayOrder": "Ordre d'affichage\u00a0:", + "Display": "Affichage", "Countries": "Pays", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json b/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json index a16a759440..f56307c730 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Dursuechs Internet nach Bilder und Metadate", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Biispell: Star Wars Sammlig", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Sproch:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json index df767f0cdc..7fd7783942 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "\u05e0\u05e2\u05d9\u05dc\u05ea \u05ea\u05db\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05e2\u05dd \u05e8\u05db\u05d9\u05e9\u05d4 \u05d7\u05d3 \u05e4\u05e2\u05de\u05d9\u05ea \u05e7\u05d8\u05e0\u05d4, \u05d0\u05d5 \u05e2\u05dd \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc Premiere \u05d0\u05de\u05d1\u05d9.", "MessageUnlockAppWithSupporter": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05e0\u05e2\u05d9\u05dc\u05d4 \u05e9\u05dc \u05ea\u05db\u05d5\u05e0\u05d4 \u05d6\u05d5 \u05e2\u05dd \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere.", "MessageToValidateSupporter": "\u05d0\u05dd \u05d9\u05e9 \u05dc\u05da \u05de\u05e0\u05d5\u05d9 \u05e4\u05e2\u05d9\u05dc \u05e9\u05dc Emby Premiere, \u05d5\u05d3\u05d0 \u05e9\u05d4\u05d2\u05d3\u05e8\u05ea \u05d0\u05ea Emby Premiere \u05d1\u05de\u05e8\u05db\u05d6 \u05d4\u05e9\u05dc\u05d9\u05d8\u05d4 \u05e9\u05dc \u200b\u200b\u05d0\u05de\u05d1\u05d9 \u05e9\u05e8\u05ea, \u05e9\u05d1\u05d5 \u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05d2\u05e9\u05ea \u05e2\u05dc-\u05d9\u05d3\u05d9 \u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc Emby Premiere \u05d1\u05ea\u05e4\u05e8\u05d9\u05d8 \u05d4\u05e8\u05d0\u05e9\u05d9.", @@ -70,8 +81,17 @@ "NewCollection": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd \u05d7\u05d3\u05e9\u05d9\u05dd", "LabelCollection": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd:", "Help": "\u05e2\u05d6\u05e8\u05d4", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "\u05d0\u05d5\u05e1\u05e4\u05d9\u05dd \u05de\u05d0\u05e4\u05e9\u05e8\u05d9\u05dd \u05dc\u05da \u05dc\u05d9\u05e6\u05d5\u05e8 \u05e7\u05d9\u05d1\u05d5\u05e6\u05d9\u05dd \u05de\u05d5\u05ea\u05d0\u05de\u05d9\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05e9\u05dc \u05e1\u05e8\u05d8\u05d9\u05dd \u05d5\u05ea\u05d5\u05db\u05df \u05e1\u05e4\u05e8\u05d9\u05d4 \u05d0\u05d7\u05e8.", "SearchForCollectionInternetMetadata": "\u05d7\u05e4\u05e9 \u05d1\u05d0\u05d9\u05e0\u05e8\u05e0\u05d8 \u05d0\u05d7\u05e8\u05d9 \u05de\u05d9\u05d3\u05e2 \u05d5\u05ea\u05de\u05d5\u05e0\u05d5\u05ea", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u05e9\u05dd:", "NewCollectionNameExample": "\u05dc\u05d3\u05d5\u05d2\u05de\u05d0 :\u05d0\u05d5\u05e1\u05e3 \u05de\u05dc\u05d7\u05de\u05ea \u05d4\u05db\u05d5\u05db\u05d1\u05d9\u05dd", "MessageItemsAdded": "\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d5.", @@ -80,6 +100,8 @@ "AddToPlaylist": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05e0\u05d9\u05d2\u05d5\u05df", "HeaderAddToPlaylist": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05e0\u05d9\u05d2\u05d5\u05df", "Subtitles": "\u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u05d7\u05d9\u05e4\u05d5\u05e9 \u05e9\u05dc \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea", "LabelLanguage": "\u05e9\u05e4\u05d4:", "Search": "\u05d7\u05d9\u05e4\u05d5\u05e9", @@ -181,6 +203,7 @@ "HeaderExternalIds": "\u05de\u05d6\u05d4\u05d9\u05dd \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9\u05d9\u05dd:", "HeaderDisplaySettings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05ea\u05e6\u05d5\u05d2\u05d4", "LabelDisplayOrder": "\u05e1\u05d3\u05e8 \u05ea\u05e6\u05d5\u05d2\u05d4:", + "Display": "Display", "Countries": "\u05de\u05d3\u05d9\u05e0\u05d5\u05ea", "Genres": "\u05d6'\u05d0\u05e0\u05e8\u05d9\u05dd", "Studios": "\u05d0\u05d5\u05dc\u05e4\u05e0\u05d9", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json index ad8c209e1d..fd3b71344d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Otklju\u010daj ovu mogu\u0107nost s malom jednokratnom kupnjom ili s aktivnom pretplatom Emby Premijere.", "MessageUnlockAppWithSupporter": "Otklju\u010daj ovu mogu\u0107nost sa pretplatom Emby Premijere.", "MessageToValidateSupporter": "Ako imate aktivnu pretplatu Emby Premijere provjerite dali ste postavili Emby Premijeru u svojoj nadzornoj plo\u010di Emby Server-a kojoj mo\u017eete pristupiti klikom Emby Premijera u glavnom izborniku.", @@ -70,8 +81,17 @@ "NewCollection": "Nova kolekcija", "LabelCollection": "Kolekcija:", "Help": "Pomo\u0107", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Kolekcije vam omogu\u0107iti da napravite personalizirane grupe filmova i ostale biblioteke.", "SearchForCollectionInternetMetadata": "Potra\u017ei na internetu grafike i metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Ime:", "NewCollectionNameExample": "Naprimjer: Star Wars Kolekcija", "MessageItemsAdded": "Stavke su dodane", @@ -80,6 +100,8 @@ "AddToPlaylist": "Dodaj u popis", "HeaderAddToPlaylist": "Dodaj u popis", "Subtitles": "Titlovi", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Tra\u017ei titlove prijevoda", "LabelLanguage": "Jezik:", "Search": "Tra\u017ei", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Postavke prikaza", "LabelDisplayOrder": "Poredak prikaza:", + "Display": "Display", "Countries": "Zemlje", "Genres": "\u017danrovi", "Studios": "Studija", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json index 08ad836929..2730202cbc 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\u00daj Gy\u0171jtem\u00e9ny", "LabelCollection": "Gy\u0171jtem\u00e9ny:", "Help": "Seg\u00edts\u00e9g", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "N\u00e9v:", "NewCollectionNameExample": "P\u00e9ld\u00e1ul: Star Wars Gy\u0171jtem\u00e9ny", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Lej\u00e1tsz\u00e1si list\u00e1hoz adni", "HeaderAddToPlaylist": "Lej\u00e1tsz\u00e1si list\u00e1hoz adni", "Subtitles": "Feliratok", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Felirat keres\u00e9se", "LabelLanguage": "Nyelv:", "Search": "Keres\u00e9s", @@ -181,6 +203,7 @@ "HeaderExternalIds": "K\u00fcls\u0151 id-k:", "HeaderDisplaySettings": "K\u00e9perny\u0151 be\u00e1ll\u00edt\u00e1sok", "LabelDisplayOrder": "Megjelen\u00edt\u00e9si sorrend:", + "Display": "Display", "Countries": "Countries", "Genres": "M\u0171fajok", "Studios": "St\u00fadi\u00f3k", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/id.json b/dashboard-ui/bower_components/emby-webcomponents/strings/id.json index 67743dc818..6dd36ef494 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/id.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/id.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Bahasa:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json index 2841f11fdd..7f48cbd758 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Sblocca questa funzionalit\u00e0 con un piccolo acquisto singolo, o con un abbonamento Emby Premiere.", "MessageUnlockAppWithSupporter": "Sblocca questa funzionalit\u00e0 con un abbonamento Emby Premiere", "MessageToValidateSupporter": "Se hai un abbonamento Emby Premiere, assicurati di averlo configurato nel Pannello di Controllo del Server, a cui puoi accedere cliccando su Emby Premiere dal menu principale.", @@ -70,8 +81,17 @@ "NewCollection": "Nuova Collezione", "LabelCollection": "Collezione:", "Help": "Aiuto", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Le collezioni ti permettono di creare raccolte personalizzate di film ed altri contenuti della libreria.", "SearchForCollectionInternetMetadata": "Cerca su internet le immagini ed i metadati", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nome:", "NewCollectionNameExample": "Esempio: Collezione Star wars", "MessageItemsAdded": "Elementi aggiunti.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Aggiungi alla playlist", "HeaderAddToPlaylist": "Aggiungi alla Playlist", "Subtitles": "Sottotitoli", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Cerca Sottotitoli", "LabelLanguage": "Lingua:", "Search": "Cerca", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Id esterni:", "HeaderDisplaySettings": "Impostazioni Video", "LabelDisplayOrder": "Ordine di visualizzazione:", + "Display": "Display", "Countries": "Nazioni", "Genres": "Generi", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json index 13343f45a6..a65744fc42 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "\u0406\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u043b\u0443\u0434\u0430\u043d \u0431\u0430\u0441\u0442\u0430\u043f \u043e\u0440\u044b\u043d\u0434\u0430\u0443", + "Desktop": "\u0416\u04b1\u043c\u044b\u0441 \u04af\u0441\u0442\u0435\u043b\u0456", + "Mobile": "\u04b0\u044f\u043b\u044b \/ \u041f\u043b\u0430\u043d\u0448\u0435\u0442\u0442\u0456\u043a", + "TV": "\u0422\u0414", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "\u041e\u0441\u044b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441\u0442\u044b \u0431\u0456\u0440 \u0436\u043e\u043b\u0493\u044b \u0441\u0430\u0442\u044b\u043f \u0430\u043b\u0443, \u043d\u0435\u043c\u0435\u0441\u0435 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u0430\u0440\u049b\u044b\u043b\u044b \u049b\u04b1\u0440\u0441\u0430\u0443\u0434\u0430\u043d \u0431\u043e\u0441\u0430\u0442\u0443.", "MessageUnlockAppWithSupporter": "\u041e\u0441\u044b \u049b\u04b1\u0440\u0430\u043c\u0434\u0430\u0441\u0442\u044b \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u0430\u0440\u049b\u044b\u043b\u044b \u049b\u04b1\u0440\u0441\u0430\u0443\u0434\u0430\u043d \u0431\u043e\u0441\u0430\u0442\u0443.", "MessageToValidateSupporter": "\u0415\u0433\u0435\u0440 \u0441\u0456\u0437\u0434\u0435 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 Emby Premiere \u0436\u0430\u0437\u044b\u043b\u044b\u043c\u044b \u0431\u043e\u043b\u0441\u0430, Emby Server \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430\u0493\u044b Emby Premiere \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u044b\u043f \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d\u0456\u043d\u0435 \u043a\u04e9\u0437 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u04a3\u0456\u0437. \u0411\u04b1\u043b \u0431\u0430\u0441\u0442\u044b \u043c\u04d9\u0437\u0456\u0440\u0434\u0435 Emby Premiere \u0434\u0435\u0433\u0435\u043d\u0434\u0456 \u043d\u04b1\u049b\u044b\u043f \u049b\u0430\u0442\u044b\u043d\u0430\u0443\u043b\u044b.", @@ -70,8 +81,17 @@ "NewCollection": "\u0416\u0430\u04a3\u0430 \u0436\u0438\u044b\u043d\u0442\u044b\u049b", "LabelCollection": "\u0416\u0438\u044b\u043d\u0442\u044b\u049b:", "Help": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0442\u0435\u0433\u0456 \u0430\u043d\u044b\u049b\u0442\u0430\u043c\u0430\u0493\u0430", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "\u0416\u0438\u044b\u043d\u0442\u044b\u049b\u0442\u0430\u0440 \u0441\u0456\u0437\u0433\u0435 \u0424\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0434\u0456\u04a3 \u0436\u04d9\u043d\u0435 \u0442\u0430\u0493\u044b \u0431\u0430\u0441\u049b\u0430 \u0442\u0430\u0441\u044b\u0493\u044b\u0448\u0445\u0430\u043d\u0430\u043d\u044b\u04a3 \u043c\u0430\u0437\u043c\u04b1\u043d\u044b\u043d \u0434\u0435\u0440\u0431\u0435\u0441\u0442\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0433\u0435\u043d \u0442\u043e\u043f\u0442\u0430\u0443\u043b\u0430\u0440\u044b\u043c\u0435\u043d \u0442\u0430\u043c\u0430\u0448\u0430\u043b\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456.", "SearchForCollectionInternetMetadata": "\u0421\u0443\u0440\u0435\u0442\u0442\u0435\u043c\u0435\u043b\u0435\u0440 \u0431\u0435\u043d \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0442\u0435\u043d \u0456\u0437\u0434\u0435\u0443", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u0410\u0442\u044b:", "NewCollectionNameExample": "\u041c\u044b\u0441\u0430\u043b: \u0416\u04b1\u043b\u0434\u044b\u0437 \u0441\u043e\u0493\u044b\u0441\u0442\u0430\u0440\u044b (\u0436\u0438\u044b\u043d\u0442\u044b\u049b)", "MessageItemsAdded": "\u0422\u0430\u0440\u043c\u0430\u049b\u0442\u0430\u0440 \u04af\u0441\u0442\u0435\u043b\u0433\u0435\u043d.", @@ -80,6 +100,8 @@ "AddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443", "HeaderAddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443", "Subtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440\u0434\u0456 \u0456\u0437\u0434\u0435\u0443", "LabelLanguage": "\u0422\u0456\u043b:", "Search": "\u0406\u0437\u0434\u0435\u0443", @@ -181,6 +203,7 @@ "HeaderExternalIds": "\u0421\u044b\u0440\u0442\u049b\u044b \u0441\u04d9\u0439\u043a\u0435\u0441\u0442\u0435\u043d\u0434\u0456\u0440\u0433\u0456\u0448\u0442\u0435\u0440:", "HeaderDisplaySettings": "\u0411\u0435\u0439\u043d\u0435\u043b\u0435\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0456", "LabelDisplayOrder": "\u0411\u0435\u0439\u043d\u0435\u043b\u0435\u0443 \u0440\u0435\u0442\u0456:", + "Display": "Display", "Countries": "\u0415\u043b\u0434\u0435\u0440", "Genres": "\u0416\u0430\u043d\u0440\u043b\u0430\u0440", "Studios": "\u0421\u0442\u0443\u0434\u0438\u044f\u043b\u0430\u0440", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json index ededfb35df..cf8da59e21 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\uc0c8 \uceec\ub809\uc158", "LabelCollection": "Collection:", "Help": "\ub3c4\uc6c0\ub9d0", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "\uc778\ud130\ub137\uc5d0\uc11c \uc544\ud2b8\uc6cc\ud06c\uc640 \uba54\ud0c0\ub370\uc774\ud130 \uac80\uc0c9", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "\uc7ac\uc0dd\ubaa9\ub85d\uc5d0 \ucd94\uac00", "HeaderAddToPlaylist": "\uc7ac\uc0dd\ubaa9\ub85d\uc5d0 \ucd94\uac00", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\uc790\ub9c9 \uac80\uc0c9", "LabelLanguage": "\uc5b8\uc5b4:", "Search": "\ucc3e\uae30", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "\ud45c\uc2dc \uc21c\uc11c:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/lt-lt.json b/dashboard-ui/bower_components/emby-webcomponents/strings/lt-lt.json index 7aff1e69ac..2de44ece9f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/lt-lt.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/lt-lt.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Atrakinkite \u0161i\u0105 funkcij\u0105 nedideliu vienkartiniu mokes\u010diu arba \u012fsigij\u0119 Emby Premiere prenumerat\u0105.", "MessageUnlockAppWithSupporter": "Atrakinkite \u0161i\u0105 funkcij\u0105 \u012fsigij\u0119 Emby Premiere prenumerat\u0105.", "MessageToValidateSupporter": "Jei turite aktyvi\u0105 Emby Premiere prenumerat\u0105, sutvarkykite Emby Premiere savo Emby Serverio skydelyje. Tai galite atlikti paspaud\u0117 Emby Premiere u\u017era\u0161\u0105 pagrindiniame meniu.", @@ -70,8 +81,17 @@ "NewCollection": "Nauja kolekcija", "LabelCollection": "Kolekcija:", "Help": "Pad\u0117ti", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Kolekcijos leid\u017eia grupuoti filmus ir kit\u0105 bibliotekos turin\u012f.", "SearchForCollectionInternetMetadata": "Ie\u0161koti internete iliustracij\u0173 ir metaduomen\u0173", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Pavadinimas:", "NewCollectionNameExample": "Pavyzdys: Star Wars kolekcija", "MessageItemsAdded": "Elementai prid\u0117ti.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Prid\u0117ti \u012f grojara\u0161t\u012f", "HeaderAddToPlaylist": "Prid\u0117ti \u012f Grojara\u0161t\u012f", "Subtitles": "Subtitrai", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Ie\u0161koti subtitr\u0173", "LabelLanguage": "Kalba:", "Search": "Ie\u0161koti", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Rodymo nustatymai", "LabelDisplayOrder": "Rodymo tvarka:", + "Display": "Display", "Countries": "\u0160alys", "Genres": "\u017danrai", "Studios": "Studijos", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json index 30ab2440ae..c99fbed23c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Language:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json index cc83edfea0..88b3e2ea17 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "L\u00e5s opp denne funksjonen med et engangskj\u00f8p, eller med et aktivt Emby Premiere abonnement.", "MessageUnlockAppWithSupporter": "L\u00e5s opp denne funksjonen med et aktivt Emby Premiere abonnement.", "MessageToValidateSupporter": "Hvis du har et aktivt Emby Premiere-abonnement, m\u00e5 du s\u00f8rge for at du har konfigurert Emby Premiere i Emby Server Dashboard, som du f\u00e5r tilgang til ved \u00e5 klikke Emby Premiere i hovedmenyen.", @@ -70,8 +81,17 @@ "NewCollection": "Ny Samling", "LabelCollection": "Samling:", "Help": "Hjelp", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Samlinger tillate deg \u00e5 lage personlige grupperinger av filmer og annet bibliotek innhold.", "SearchForCollectionInternetMetadata": "S\u00f8k p\u00e5 internet for artwork og metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Navn", "NewCollectionNameExample": "Eksempel: Star Wars-samling", "MessageItemsAdded": "Elementer lagt til.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Legg til spilleliste", "HeaderAddToPlaylist": "Legg til Spilleliste", "Subtitles": "Undertekster", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "S\u00f8k etter undertekster", "LabelLanguage": "Spr\u00e5k:", "Search": "S\u00f8k", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Skjerminnstillinger", "LabelDisplayOrder": "Visningsrekkef\u00f8lge:", + "Display": "Display", "Countries": "Land", "Genres": "Sjanger", "Studios": "Studioer", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json index 573e0e3686..63bc0497bd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Ontgrendel deze functie met een kleine eenmalige aankoop, of met een actief Emby Premiere abonnement.", "MessageUnlockAppWithSupporter": "Ontgrendel deze functie met een actief Emby Premiere abonnement.", "MessageToValidateSupporter": "Als u een actieve Emby Premiere abonnement heeft, zorg er dan voor dat u deze activeert in uw Emby Server Dashboard door te klikken op Emby Premiere in het hoofdmenu.", @@ -70,8 +81,17 @@ "NewCollection": "Nieuwe Collectie", "LabelCollection": "Collectie", "Help": "Hulp", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collecties maken het u mogelijk om gepersonaliseerde groeperingen van films en andere bibliotheek inhoud te maken.", "SearchForCollectionInternetMetadata": "Zoeken op het internet voor afbeeldingen en metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Naam:", "NewCollectionNameExample": "Voorbeeld: Star Wars Collectie", "MessageItemsAdded": "Items toegevoegd", @@ -80,6 +100,8 @@ "AddToPlaylist": "Toevoegen aan afspeellijst", "HeaderAddToPlaylist": "Toevoegen aan Afspeellijst", "Subtitles": "Ondertiteling", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Zoeken naar ondertitels", "LabelLanguage": "Taal:", "Search": "Zoeken", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Weergave instellingen", "LabelDisplayOrder": "Weergave volgorde:", + "Display": "Display", "Countries": "Landen", "Genres": "Genres", "Studios": "Studio's", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json index e526d5337e..1b638fbfb0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Komputer stacjonarny", + "Mobile": "Telefon \/ tabet", + "TV": "Telewizor", + "LabelDisplayMode": "Tryb wy\u015bwietlania:", + "DisplayModeHelp": "Okre\u015bla typ urz\u0105dzenia, na kt\u00f3rym uruchomiono Emby.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Odblokuj t\u0119 funkcj\u0119, za niewielk\u0105 jednorazow\u0105 op\u0142at\u0105 lub przy u\u017cyciu aktywnej subskrypcji Emby Premium.", "MessageUnlockAppWithSupporter": "Odblokuj t\u0119 funkcj\u0119 przy u\u017cyciu subskrypcji Emby Premium.", "MessageToValidateSupporter": "Je\u015bli posiadasz aktywn\u0105 subskrypcj\u0119 Emby Premium, upewnij si\u0119, \u017ce j\u0105 poprawnie skonfigurowa\u0142e\u015b przy pomocy Kokpitu serwera Emby, do kt\u00f3rego mo\u017cesz uzyska\u0107 dost\u0119p, klikaj\u0105c na pozycj\u0119 Premium menu startowego.", @@ -6,7 +17,7 @@ "Share": "Udost\u0119pnij", "Add": "Dodaj", "ServerUpdateNeeded": "Ten serwer Emby wymaga aktualizacji. Odwied\u017a stron\u0119 {0}, aby pobra\u0107 najnowsz\u0105 wersj\u0119.", - "LiveTvRequiresUnlock": "Live TV requires an active Emby Premiere subscription.", + "LiveTvRequiresUnlock": "Odbi\u00f3r transmisji telewizyjnych wymaga aktywnej subskrypcji Emby Premiere.", "AttributeNew": "Nowe", "Premiere": "Premiera", "Live": "Na \u017cywo", @@ -70,8 +81,17 @@ "NewCollection": "Nowa kolekcja", "LabelCollection": "Kolekcja:", "Help": "Pomoc", + "LabelDisplayLanguage": "J\u0119zyk interfejsu:", + "LabelDisplayLanguageHelp": "T\u0142umaczenie Emby to projekt, kt\u00f3ry ci\u0105gle trwa.", + "LearnHowYouCanContribute": "Dowiedz si\u0119 jak mo\u017cesz pom\u00f3c.", "NewCollectionHelp": "Kolekcje umo\u017cliwiaj\u0105 spersonalizowane grupowanie film\u00f3w i innej zawarto\u015bci biblioteki.", "SearchForCollectionInternetMetadata": "Wyszukuj grafiki i metadane w Internecie", + "DisplayMissingEpisodesWithinSeasons": "Wy\u015bwietlaj w sezonach brakuj\u0105ce odcinki", + "DisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja, musi zosta\u0107 dodatkowo aktywowana w bibliotece seriali, w konfiguracji serwera Emby.", + "EnableThemeSongs": "Odtwarzaj motywy muzyczne", + "EnableBackdrops": "Wy\u015bwietlaj fototapety", + "EnableThemeSongsHelp": "Umo\u017cliwia odtwarzanie podczas przegl\u0105dania biblioteki motyw\u00f3w muzycznych.", + "EnableBackdropsHelp": "Umo\u017cliwia wy\u015bwietlanie fototapet, w tle niekt\u00f3rych stron, podczas przegl\u0105dania biblioteki.", "LabelName": "Nazwa:", "NewCollectionNameExample": "Przyk\u0142ad: Kolekcja Star Wars", "MessageItemsAdded": "Dodano pozycj\u0119.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Dodaj do listy", "HeaderAddToPlaylist": "Dodaj do listy", "Subtitles": "Napisy", + "LabelTheme": "Motyw:", + "LabelDashboardTheme": "Motyw kokpitu serwera:", "SearchForSubtitles": "Wyszukuj napisy", "LabelLanguage": "J\u0119zyk:", "Search": "Szukaj", @@ -91,10 +113,10 @@ "MessageDownloadQueued": "Dodano do kolejki pobierania.", "EditSubtitles": "Edytuj napisy", "UnlockGuide": "Odblokuj funkcje przewodnika", - "RefreshMetadata": "Od\u015bwie\u017c metadane:", + "RefreshMetadata": "Od\u015bwie\u017c metadane", "ReplaceExistingImages": "Zast\u0119puj istniej\u0105ce obrazy", "ReplaceAllMetadata": "Zast\u0119puj wszystkie metadane", - "SearchForMissingMetadata": "Wyszukuj brakuj\u0105cych metadanych", + "SearchForMissingMetadata": "Wyszukuj brakuj\u0105ce metadane", "LabelRefreshMode": "Tryb od\u015bwie\u017cania:", "NoItemsFound": "Brak dost\u0119pnych pozycji.", "HeaderSaySomethingLike": "Powiedz co\u015b jak...", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Identyfikatory zewn\u0119trzne:", "HeaderDisplaySettings": "Ustawienia wy\u015bwietlania", "LabelDisplayOrder": "Kolejno\u015b\u0107 wy\u015bwietlania:", + "Display": "Wy\u015bwietlanie", "Countries": "Kraje", "Genres": "Gatunki", "Studios": "Wytw\u00f3rnie", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-br.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-br.json index 98a88cd8b2..891683b214 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-br.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-br.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Executar ao iniciar", + "Desktop": "Desktop", + "Mobile": "Celular \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Mode de exibi\u00e7\u00e3o:", + "DisplayModeHelp": "Selecione o tipo de tela para executar o Emby.", + "EnableThemeVideos": "Ativar m\u00fasicas-tema", + "EnableThemeVideosHelp": "Se ativadas, m\u00fasicas-tema ser\u00e3o reproduzidas em segundo plano ao navegar pela biblioteca.", + "LabelScreensaver": "Protetor de Tela:", + "LabelSoundEffects": "Efeitos sonoros:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Desbloqueie esta funcionalidade com uma pequena compra \u00fanica, ou com uma assinatura ativa do Emby Premiere.", "MessageUnlockAppWithSupporter": "Desbloqueie esta funcionalidade com uma assinatura ativa do Emby Premiere.", "MessageToValidateSupporter": "Se tiver uma assinatura ativa do Emby Premiere, assegure-se que configurou o Emby Premiere no Painel do Servidor Emby, que pode ser acessado clicando Emby Premiere no menu principal.", @@ -6,7 +17,7 @@ "Share": "Compartilhar", "Add": "Adicionar", "ServerUpdateNeeded": "Este Servidor Emby precisa ser atualizado. Para fazer download da vers\u00e3o mais recente, por favor visite {0}", - "LiveTvRequiresUnlock": "Live TV requires an active Emby Premiere subscription.", + "LiveTvRequiresUnlock": "A TV ao vivo exige uma assinatura ativa do Emby Premiere.", "AttributeNew": "Novo", "Premiere": "Premiere", "Live": "Ao vivo", @@ -42,7 +53,7 @@ "HeaderOfflineDownloads": "M\u00eddia Offline", "HeaderOfflineDownloadsDescription": "Download sua m\u00eddia para seus dispositivos para uso offline f\u00e1cil.", "CloudSyncFeatureDescription": "Sincronize sua m\u00eddia para a nuvem para backup, arquivamento e convers\u00e3o f\u00e1ceis.", - "LiveTvFeatureDescription": "Stream Live TV to any Emby app, with a compatible TV tuner device installed on your Emby Server.", + "LiveTvFeatureDescription": "Assistir TV ao vivo em qualquer app Emby com um sintonizador de TV compat\u00edvel, instalado em seu servidor Emby.", "DvrFeatureDescription": "Agendar grava\u00e7\u00f5es individuais de TV ao vivo, grava\u00e7\u00f5es de s\u00e9ries e mais com o Emby DVR.", "CinemaModeFeatureDescription": "Modo Cinema oferece a voc\u00ea uma verdadeira experi\u00eancia de cinema com trailers e intros customizados antes da funcionalidade.", "HeaderFreeApps": "Apps Emby gr\u00e1tis", @@ -70,8 +81,17 @@ "NewCollection": "Nova Colet\u00e2nea", "LabelCollection": "Colet\u00e2nea:", "Help": "Ajuda", + "LabelDisplayLanguage": "Idioma para exibi\u00e7\u00e3o:", + "LabelDisplayLanguageHelp": "A tradu\u00e7\u00e3o do Emby \u00e9 um projeto em andamento.", + "LearnHowYouCanContribute": "Saiba como voc\u00ea pode contribuir.", "NewCollectionHelp": "Colet\u00e2neas permitem que voc\u00ea crie grupos personalizados de filmes e outros conte\u00fados da biblioteca.", "SearchForCollectionInternetMetadata": "Buscar artwork e metadados na internet", + "DisplayMissingEpisodesWithinSeasons": "Exibir epis\u00f3dios que faltam dentro das temporadas", + "DisplayMissingEpisodesWithinSeasonsHelp": "Isto tamb\u00e9m deve ser ativado para as bibliotecas de TV na configura\u00e7\u00e3o do Servidor Emby.", + "EnableThemeSongs": "Ativar m\u00fasicas-tema", + "EnableBackdrops": "Ativar imagens de fundo", + "EnableThemeSongsHelp": "Se ativadas, m\u00fasicas-tema ser\u00e3o reproduzidas em segundo plano ao navegar pela biblioteca.", + "EnableBackdropsHelp": "Se ativadas, imagens de fundo ser\u00e3o exibidas ao fundo de algumas p\u00e1ginas ao navegar pela biblioteca.", "LabelName": "Nome:", "NewCollectionNameExample": "Exemplo: Colet\u00e2nea Star Wars", "MessageItemsAdded": "Itens adicionados.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Adicionar \u00e0 lista de reprodu\u00e7\u00e3o", "HeaderAddToPlaylist": "Adicionar \u00e0 Lista de Reprodu\u00e7\u00e3o", "Subtitles": "Legendas", + "LabelTheme": "Tema:", + "LabelDashboardTheme": "Tema do painel do servidor:", "SearchForSubtitles": "Buscar Legendas", "LabelLanguage": "Idioma:", "Search": "Busca", @@ -168,8 +190,8 @@ "FormatValue": "Formato: {0}", "DownloadsValue": "Downloads: {0}", "PerfectMatch": "Combina\u00e7\u00e3o perfeita", - "EnableExternalVideoPlayers": "Enable external video players", - "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", + "EnableExternalVideoPlayers": "Ativar reprodutores de v\u00eddeo externos", + "EnableExternalVideoPlayersHelp": "Um menu do reprodutor externo ser\u00e1 exibido ao iniciar a reprodu\u00e7\u00e3o do v\u00eddeo.", "HeaderAlternateEpisodeNumbers": "N\u00fameros de Epis\u00f3dios Alternativos", "LabelDvdSeasonNumber": "N\u00famero da temporada do Dvd:", "LabelDvdEpisodeNumber": "N\u00famero do epis\u00f3dio do Dvd:", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Ids Externos:", "HeaderDisplaySettings": "Ajustes de Exibi\u00e7\u00e3o", "LabelDisplayOrder": "Ordem de exibi\u00e7\u00e3o:", + "Display": "Exibir", "Countries": "Pa\u00edses", "Genres": "G\u00eaneros", "Studios": "Est\u00fadios", @@ -407,9 +430,9 @@ "Up": "Para cima", "Down": "Para baixo", "HeaderHomeScreen": "Tela In\u00edcio", - "HeaderHomeScreenContent": "Home Screen Content", + "HeaderHomeScreenContent": "Conte\u00fado fa Tela In\u00edcio", "HeaderLatestChannelItems": "Itens de Canais Recentes", - "LabelSelectHomeScreenItemsFolders": "Allow items to appear on my home screen from:", + "LabelSelectHomeScreenItemsFolders": "Permitir aos itens aparecer na minha tela in\u00edcio de:", "HeaderLibraryOrder": "Ordem da Biblioteca", "HideWatchedContentFromLatestMedia": "Ocultar conte\u00fado assistido das m\u00eddias recentes", "HeaderOnNow": "Em Exibi\u00e7\u00e3o", @@ -530,41 +553,41 @@ "VideoBitDepthNotSupported": "Profundidade de bit de v\u00eddeo n\u00e3o suportada", "RefFramesNotSupported": "N\u00famero de quadros de refer\u00eancia de v\u00eddeo n\u00e3o suportado", "ErrorConnectServerUnreachable": "Ocorreu um erro ao executar a opera\u00e7\u00e3o solicitada. Seu servidor n\u00e3o pode contactar nosso Emby Connect Server em {0}. Por favor, verifique se seu servidor possui uma conex\u00e3o de internet ativa e se as comunica\u00e7\u00f5es est\u00e3o liberadas pelo firewall ou software de seguran\u00e7a instalados.", - "StopRecording": "Stop recording", - "ManageRecording": "Manage recording", - "LabelDropImageHere": "Drop image here, or click to browse.", - "MessageFileReadError": "There was an error reading the file. Please try again.", + "StopRecording": "Parar grava\u00e7\u00e3o", + "ManageRecording": "Gerenciar grava\u00e7\u00e3o", + "LabelDropImageHere": "Soltar a imagem aqui, ou clicar para procurar.", + "MessageFileReadError": "Ocorreu um erro ao ler o arquivo. Por favor, tente novamente.", "Browse": "Navegar", - "HeaderUploadImage": "Upload Image", - "HeaderAddUpdateImage": "Add\/Update Image", - "LabelImageType": "Image type:", - "Upload": "Upload", - "Primary": "Primary", - "Art": "Art", - "Backdrop": "Backdrop", + "HeaderUploadImage": "Carregar Imagem", + "HeaderAddUpdateImage": "Adicionar\/Atualizar Imagem", + "LabelImageType": "Tipo de imagem:", + "Upload": "Carregar", + "Primary": "Capa", + "Art": "Arte", + "Backdrop": "Imagem de Fundo", "Banner": "Banner", - "Box": "Box", - "BoxRear": "Box (rear)", - "Disc": "Disc", + "Box": "Caixa", + "BoxRear": "Caixa (traseira)", + "Disc": "Disco", "Logo": "Logo", "Menu": "Menu", - "Screenshot": "Screenshot", - "Thumb": "Thumb", - "ValueSeconds": "{0} seconds", + "Screenshot": "Imagem da tela", + "Thumb": "\u00cdcone", + "ValueSeconds": "{0} segundos", "HeaderAudioSettings": "Ajustes de \u00c1udio", - "LabelAudioLanguagePreference": "Preferred audio language:", - "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language", - "HeaderVideoQuality": "Video Quality", - "CinemaModeConfigurationHelp": "Cinema mode brings the theater experience straight to your living room with the ability to play trailers and custom intros before the main feature.", - "EnableNextVideoInfoOverlay": "Enable next video info during playback", - "EnableNextVideoInfoOverlayHelp": "At the end of a video, display info about the next video coming up in the current playlist.", + "LabelAudioLanguagePreference": "\u00c1udio preferido para exibi\u00e7\u00e3o:", + "LabelPlayDefaultAudioTrack": "Reproduzir a faixa de \u00e1udio padr\u00e3o, independente do idioma", + "HeaderVideoQuality": "Qualidade do V\u00eddeo", + "CinemaModeConfigurationHelp": "O modo cinema traz a experi\u00eancia do cinema diretamente para a sua sala, possibilitando reproduzir trailers e introdu\u00e7\u00f5es personalizadas antes do filme principal.", + "EnableNextVideoInfoOverlay": "Ativar as informa\u00e7\u00f5es do pr\u00f3ximo v\u00eddeo durante a reprodu\u00e7\u00e3o", + "EnableNextVideoInfoOverlayHelp": "Ao final de um v\u00eddeo, exibe informa\u00e7\u00f5es sobre o pr\u00f3ximo v\u00eddeo que est\u00e1 na lista de reprodu\u00e7\u00e3o.", "PlayNextEpisodeAutomatically": "Reproduzir pr\u00f3ximo epis\u00f3dio automaticamente", - "LabelMaxChromecastBitrate": "Chromecast streaming quality:", - "LabelSkipBackLength": "Skip back length:", - "LabelSkipForwardLength": "Skip forward length:", + "LabelMaxChromecastBitrate": "Qualidade para streaming do chromecast:", + "LabelSkipBackLength": "Tamanho do intervalo para retroceder", + "LabelSkipForwardLength": "Tamanho do intervalo para avan\u00e7ar", "EnableCinemaMode": "Ativar modo cinema", - "LabelInternetQuality": "Internet quality:", - "HeaderMusicQuality": "Music Quality", - "LabelHomeNetworkQuality": "Home network quality:", + "LabelInternetQuality": "Qualidade da internet:", + "HeaderMusicQuality": "Qualidade da M\u00fasica:", + "LabelHomeNetworkQuality": "Qualidade da rede local:", "HeaderLatestMedia": "M\u00eddias Recentes" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-pt.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-pt.json index 77fd27904c..9379da0b42 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-pt.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-pt.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "Nova Cole\u00e7\u00e3o", "LabelCollection": "Collection:", "Help": "Ajuda", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Procurar na internet por imagens e metadados", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nome:", "NewCollectionNameExample": "Exemplo: Cole\u00e7\u00e3o Guerra das Estrelas", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Adicionar \u00e0 lista de reprodu\u00e7\u00e3o", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Buscar Legendas", "LabelLanguage": "Idioma:", "Search": "Busca", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Ordem de exibi\u00e7\u00e3o:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json index c402406aa2..4fb5af0cf0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Ajutor", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "C\u0103utare pe internet pentru postere \u0219i metadate", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Nume:", "NewCollectionNameExample": "Exemplu: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Limba:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json index 795c888cf3..3889e2ff99 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b", + "Desktop": "\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b", + "Mobile": "\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \/ \u041f\u043b\u0430\u043d\u0448\u0435\u0442\u043d\u044b\u0439", + "TV": "\u0422\u0412", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u043f\u043b\u0430\u0442\u044b, \u0438\u043b\u0438 \u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u043e\u0439 Emby Premiere .", "MessageUnlockAppWithSupporter": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u043e\u0439 Emby Premiere.", "MessageToValidateSupporter": "\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 Emby Premiere, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Emby Premiere \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432 \u0432\u0430\u0448\u0435\u0439 \u041f\u0430\u043d\u0435\u043b\u0438 Emby Server, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e \u0449\u0435\u043b\u0447\u043a\u0443 \u043f\u043e Emby Premiere \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e.", @@ -70,8 +81,17 @@ "NewCollection": "\u041d\u043e\u0432\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f", "LabelCollection": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f:", "Help": "\u0421\u043f\u0440\u0430\u0432\u043a\u0430...", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u0438\u044f \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0438 \u0438\u043d\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438.", "SearchForCollectionInternetMetadata": "\u0418\u0441\u043a\u0430\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u0418\u043c\u044f:", "NewCollectionNameExample": "\u041f\u0440\u0438\u043c\u0435\u0440: \u0417\u0432\u0451\u0437\u0434\u043d\u044b\u0435 \u0432\u043e\u0439\u043d\u044b (\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f)", "MessageItemsAdded": "\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b.", @@ -80,6 +100,8 @@ "AddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442", "HeaderAddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043f\u043b\u0435\u0439-\u043b\u0438\u0441\u0442", "Subtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u041f\u043e\u0438\u0441\u043a \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432", "LabelLanguage": "\u042f\u0437\u044b\u043a:", "Search": "\u041f\u043e\u0438\u0441\u043a", @@ -181,6 +203,7 @@ "HeaderExternalIds": "\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b:", "HeaderDisplaySettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", "LabelDisplayOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f:", + "Display": "Display", "Countries": "\u0421\u0442\u0440\u0430\u043d\u044b", "Genres": "\u0416\u0430\u043d\u0440\u044b", "Studios": "\u0421\u0442\u0443\u0434\u0438\u0438", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json index 30ab2440ae..c99fbed23c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Language:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sl-si.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sl-si.json index 9220479e92..11c0803dac 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sl-si.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sl-si.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Jezik:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json index 11f866be44..b5452a6b3f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "L\u00e5s upp denna feature med ett eng\u00e5ngsk\u00f6p, eller med ett aktivt Emby Premium-medlemskap.", "MessageUnlockAppWithSupporter": "L\u00e5s upp den h\u00e4r funktionen med en aktiv Emby Premium prenumeration.", "MessageToValidateSupporter": "Om du har ett aktivt Emby Premium-medlemskap, se till att du har st\u00e4llt in Emby Premium i Emby Server Dashboard, som du kommer \u00e5t genom att klicka p\u00e5 Emby Premium i huvudmenyn.", @@ -70,8 +81,17 @@ "NewCollection": "Ny samling", "LabelCollection": "Samling:", "Help": "Hj\u00e4lp", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Samlingar g\u00f6r det m\u00f6jligt att skapa personanpassade grupperingar av filmer eller annat inneh\u00e5ll.", "SearchForCollectionInternetMetadata": "S\u00f6k p\u00e5 internet efter grafik och metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Namn:", "NewCollectionNameExample": "Exemple: Star Wars-samling", "MessageItemsAdded": "Objekt tillagda.", @@ -80,6 +100,8 @@ "AddToPlaylist": "L\u00e4gg till i spellista", "HeaderAddToPlaylist": "L\u00e4gg till i Spellista", "Subtitles": "Undertexter", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "S\u00f6k efter undertexter", "LabelLanguage": "Spr\u00e5k:", "Search": "S\u00f6k", @@ -181,6 +203,7 @@ "HeaderExternalIds": "Externa ID'n:", "HeaderDisplaySettings": "Visningsinst\u00e4llningar", "LabelDisplayOrder": "Visningsordning:", + "Display": "Display", "Countries": "L\u00e4nder", "Genres": "Genrer", "Studios": "Studior", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json index f524d16b55..874512c8ec 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "Yeni Koleksiyon", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u0130sim:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Dil:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json index 2ab7f3ef44..aac8ecbf01 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "Name:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "\u041c\u043e\u0432\u0430:", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json b/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json index 23d5df1944..2de086ac1c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "New Collection", "LabelCollection": "Collection:", "Help": "Help", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "Search the internet for artwork and metadata", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "T\u00ean:", "NewCollectionNameExample": "Example: Star Wars Collection", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "Search for Subtitles", "LabelLanguage": "Ng\u00f4n ng\u1eef", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-cn.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-cn.json index f868530804..48daed5633 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-cn.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-cn.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\u65b0\u5408\u96c6", "LabelCollection": "\u5408\u96c6\uff1a", "Help": "\u5e2e\u52a9", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "\u5728\u4e92\u8054\u7f51\u4e0a\u641c\u7d22\u5a92\u4f53\u56fe\u50cf\u548c\u8d44\u6599", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u540d\u5b57\uff1a", "NewCollectionNameExample": "\u4f8b\u5982\uff1a\u661f\u7403\u5927\u6218\u5408\u96c6", "MessageItemsAdded": "\u9879\u76ee\u5df2\u6dfb\u52a0\u3002", @@ -80,6 +100,8 @@ "AddToPlaylist": "\u6dfb\u52a0\u5230\u64ad\u653e\u5217\u8868", "HeaderAddToPlaylist": "\u6dfb\u52a0\u5230\u64ad\u653e\u5217\u8868", "Subtitles": "\u5b57\u5e55", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u641c\u7d22\u5b57\u5e55", "LabelLanguage": "\u8bed\u8a00\uff1a", "Search": "\u641c\u7d22", @@ -181,6 +203,7 @@ "HeaderExternalIds": "\u5916\u90e8 Ids\uff1a", "HeaderDisplaySettings": "\u663e\u793a\u8bbe\u7f6e", "LabelDisplayOrder": "\u663e\u793a\u987a\u5e8f\uff1a", + "Display": "Display", "Countries": "\u56fd\u5bb6", "Genres": "\u98ce\u683c", "Studios": "\u5de5\u4f5c\u5ba4", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-hk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-hk.json index 5909a9ce6f..dfd227cb77 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-hk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-hk.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\u65b0\u6536\u85cf\u5eab", "LabelCollection": "Collection:", "Help": "\u5e6b\u52a9", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.", "SearchForCollectionInternetMetadata": "\u5f9e\u4e92\u806f\u7db2\u641c\u5c0b\u76f8\u95dc\u5716\u7247\u548c\u8cc7\u6599\u5c6c\u6027", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u540d\u7a31\uff1a", "NewCollectionNameExample": "\u4f8b\u5982\uff1a\u661f\u7403\u5927\u6230\u6536\u85cf\u5eab", "MessageItemsAdded": "Items added.", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "Subtitles", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u5b57\u5e55\u641c\u7d22", "LabelLanguage": "\u8a9e\u8a00\uff1a", "Search": "Search", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-tw.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-tw.json index abe4428757..b12eb02d8f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-tw.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-tw.json @@ -1,4 +1,15 @@ { + "RunAtStartup": "Run at startup", + "Desktop": "Desktop", + "Mobile": "Mobile \/ Tablet", + "TV": "TV", + "LabelDisplayMode": "Display mode:", + "DisplayModeHelp": "Select the type of screen you're running Emby on.", + "EnableThemeVideos": "Enable theme videos", + "EnableThemeVideosHelp": "If enabled, theme videos will be played in the background while browsing the library.", + "LabelScreensaver": "Screensaver:", + "LabelSoundEffects": "Sound effects:", + "LabelSkin": "Skin:", "MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", @@ -70,8 +81,17 @@ "NewCollection": "\u65b0\u5408\u96c6", "LabelCollection": "\u6536\u85cf\u6ac3\uff1a", "Help": "\u8aaa\u660e", + "LabelDisplayLanguage": "Display language:", + "LabelDisplayLanguageHelp": "Translating Emby is an ongoing project.", + "LearnHowYouCanContribute": "Learn how you can contribute.", "NewCollectionHelp": "\u6536\u85cf\u6ac3\u8b93\u60a8\u80fd\u5920\u5efa\u7acb\u500b\u4eba\u5316\u7684\u5f71\u97f3\u53ca\u5176\u4ed6\u5a92\u9ad4\u7684\u5206\u985e", "SearchForCollectionInternetMetadata": "\u5728\u4e92\u806f\u7db2\u4e0a\u641c\u7d22\u5a92\u9ad4\u5716\u50cf\u548c\u8cc7\u6599", + "DisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons", + "DisplayMissingEpisodesWithinSeasonsHelp": "This must also be enabled for TV libraries in Emby Server setup.", + "EnableThemeSongs": "Enable theme songs", + "EnableBackdrops": "Enable backdrops", + "EnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.", + "EnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.", "LabelName": "\u540d\u5b57\uff1a", "NewCollectionNameExample": "\u4f8b\u5b50\uff1a\u661f\u7403\u5927\u6230\u5408\u96c6", "MessageItemsAdded": "\u5df2\u65b0\u589e\u9805\u76ee", @@ -80,6 +100,8 @@ "AddToPlaylist": "Add to playlist", "HeaderAddToPlaylist": "Add to Playlist", "Subtitles": "\u5b57\u5e55", + "LabelTheme": "Theme:", + "LabelDashboardTheme": "Server dashboard theme:", "SearchForSubtitles": "\u641c\u5c0b\u5b57\u5e55", "LabelLanguage": "\u8a9e\u8a00\uff1a", "Search": "\u641c\u5c0b", @@ -181,6 +203,7 @@ "HeaderExternalIds": "External Ids:", "HeaderDisplaySettings": "Display Settings", "LabelDisplayOrder": "Display order:", + "Display": "Display", "Countries": "Countries", "Genres": "Genres", "Studios": "Studios", diff --git a/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js index 36ed126b6d..c592fd0004 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/usersettings/usersettingsbuilder.js @@ -1 +1 @@ -define(["appSettings","events"],function(appsettings,events){"use strict";function onSaveTimeout(){var self=this;self.saveTimeout=null,self.currentApiClient.updateDisplayPreferences("usersettings",self.displayPrefs,self.currentUserId,"emby")}function saveServerPreferences(instance){instance.saveTimeout&&clearTimeout(instance.saveTimeout),instance.saveTimeout=setTimeout(onSaveTimeout.bind(instance),50)}function UserSettings(){}function getSavedQueryKey(context){return"query-"+context}return UserSettings.prototype.setUserInfo=function(userId,apiClient){if(this.saveTimeout&&clearTimeout(this.saveTimeout),this.currentUserId=userId,this.currentApiClient=apiClient,!userId)return this.displayPrefs=null,Promise.resolve();var self=this;return apiClient.getDisplayPreferences("usersettings",userId,"emby").then(function(result){result.CustomPrefs=result.CustomPrefs||{},self.displayPrefs=result})},UserSettings.prototype.getData=function(){return this.displayPrefs},UserSettings.prototype.importFrom=function(instance){this.displayPrefs=instance.getData()},UserSettings.prototype.set=function(name,value,enableOnServer){var userId=this.currentUserId;if(!userId)throw new Error("userId cannot be null");var currentValue=this.get(name),result=appsettings.set(name,value,userId);return enableOnServer!==!1&&this.displayPrefs&&(this.displayPrefs.CustomPrefs[name]=null==value?value:value.toString(),saveServerPreferences(this)),currentValue!==value&&events.trigger(this,"change",[name]),result},UserSettings.prototype.get=function(name,enableOnServer){var userId=this.currentUserId;return userId?enableOnServer!==!1&&this.displayPrefs?this.displayPrefs.CustomPrefs[name]:appsettings.get(name,userId):null},UserSettings.prototype.serverConfig=function(config){var apiClient=this.currentApiClient;return config?apiClient.updateUserConfiguration(this.currentUserId,config):apiClient.getUser(this.currentUserId).then(function(user){return user.Configuration})},UserSettings.prototype.enableCinemaMode=function(val){return null!=val?this.set("enableCinemaMode",val.toString(),!1):(val=this.get("enableCinemaMode",!1),!val||"false"!==val)},UserSettings.prototype.enableNextVideoInfoOverlay=function(val){return null!=val?this.set("enableNextVideoInfoOverlay",val.toString()):(val=this.get("enableNextVideoInfoOverlay"),"false"!==val)},UserSettings.prototype.enableThemeSongs=function(val){return null!=val?this.set("enableThemeSongs",val.toString(),!1):(val=this.get("enableThemeSongs",!1),"false"!==val)},UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):(val=this.get("enableThemeVideos",!1),val?"false"!==val:UserSettings.defaults.enableThemeVideos)},UserSettings.prototype.language=function(val){return null!=val?this.set("language",val.toString(),!1):this.get("language",!1)},UserSettings.prototype.skipBackLength=function(val){return null!=val?this.set("skipBackLength",val.toString()):parseInt(this.get("skipBackLength")||"10000")},UserSettings.prototype.skipForwardLength=function(val){return null!=val?this.set("skipForwardLength",val.toString()):parseInt(this.get("skipForwardLength")||"30000")},UserSettings.prototype.dashboardTheme=function(val){return null!=val?this.set("dashboardTheme",val):this.get("dashboardTheme")},UserSettings.prototype.theme=function(val){return null!=val?this.set("appTheme",val,!1):this.get("appTheme",!1)||UserSettings.defaults.theme},UserSettings.defaults={theme:null,enableThemeVideos:!0},UserSettings.prototype.loadQuerySettings=function(query,context){var key=getSavedQueryKey(context),values=this.get(key);if(values)return values=JSON.parse(values),Object.assign(query,values)},UserSettings.prototype.saveQuerySettings=function(query,context){var key=getSavedQueryKey(context),values={};return query.SortBy&&(values.SortBy=query.SortBy),query.SortOrder&&(values.SortOrder=query.SortOrder),this.set(key,JSON.stringify(values))},UserSettings.prototype.getSubtitleAppearanceSettings=function(key){return key=key||"localplayersubtitleappearance3",JSON.parse(this.get(key,!1)||"{}")},UserSettings.prototype.setSubtitleAppearanceSettings=function(value,key){return key=key||"localplayersubtitleappearance3",this.set(key,JSON.stringify(value),!1)},UserSettings}); \ No newline at end of file +define(["appSettings","events"],function(appsettings,events){"use strict";function onSaveTimeout(){var self=this;self.saveTimeout=null,self.currentApiClient.updateDisplayPreferences("usersettings",self.displayPrefs,self.currentUserId,"emby")}function saveServerPreferences(instance){instance.saveTimeout&&clearTimeout(instance.saveTimeout),instance.saveTimeout=setTimeout(onSaveTimeout.bind(instance),50)}function UserSettings(){}function getSavedQueryKey(context){return"query-"+context}return UserSettings.prototype.setUserInfo=function(userId,apiClient){if(this.saveTimeout&&clearTimeout(this.saveTimeout),this.currentUserId=userId,this.currentApiClient=apiClient,!userId)return this.displayPrefs=null,Promise.resolve();var self=this;return apiClient.getDisplayPreferences("usersettings",userId,"emby").then(function(result){result.CustomPrefs=result.CustomPrefs||{},self.displayPrefs=result})},UserSettings.prototype.getData=function(){return this.displayPrefs},UserSettings.prototype.importFrom=function(instance){this.displayPrefs=instance.getData()},UserSettings.prototype.set=function(name,value,enableOnServer){var userId=this.currentUserId;if(!userId)throw new Error("userId cannot be null");var currentValue=this.get(name),result=appsettings.set(name,value,userId);return enableOnServer!==!1&&this.displayPrefs&&(this.displayPrefs.CustomPrefs[name]=null==value?value:value.toString(),saveServerPreferences(this)),currentValue!==value&&events.trigger(this,"change",[name]),result},UserSettings.prototype.get=function(name,enableOnServer){var userId=this.currentUserId;return userId?enableOnServer!==!1&&this.displayPrefs?this.displayPrefs.CustomPrefs[name]:appsettings.get(name,userId):null},UserSettings.prototype.serverConfig=function(config){var apiClient=this.currentApiClient;return config?apiClient.updateUserConfiguration(this.currentUserId,config):apiClient.getUser(this.currentUserId).then(function(user){return user.Configuration})},UserSettings.prototype.enableCinemaMode=function(val){return null!=val?this.set("enableCinemaMode",val.toString(),!1):(val=this.get("enableCinemaMode",!1),!val||"false"!==val)},UserSettings.prototype.enableNextVideoInfoOverlay=function(val){return null!=val?this.set("enableNextVideoInfoOverlay",val.toString()):(val=this.get("enableNextVideoInfoOverlay"),"false"!==val)},UserSettings.prototype.enableThemeSongs=function(val){return null!=val?this.set("enableThemeSongs",val.toString(),!1):(val=this.get("enableThemeSongs",!1),"false"!==val)},UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):(val=this.get("enableThemeVideos",!1),val?"false"!==val:UserSettings.defaults.enableThemeVideos)},UserSettings.prototype.enableBackdrops=function(val){return null!=val?this.set("enableBackdrops",val.toString(),!1):(val=this.get("enableBackdrops",!1),val?"false"!==val:UserSettings.defaults.enableBackdrops)},UserSettings.prototype.language=function(val){return null!=val?this.set("language",val.toString(),!1):this.get("language",!1)},UserSettings.prototype.skipBackLength=function(val){return null!=val?this.set("skipBackLength",val.toString()):parseInt(this.get("skipBackLength")||"10000")},UserSettings.prototype.skipForwardLength=function(val){return null!=val?this.set("skipForwardLength",val.toString()):parseInt(this.get("skipForwardLength")||"30000")},UserSettings.prototype.dashboardTheme=function(val){return null!=val?this.set("dashboardTheme",val):this.get("dashboardTheme")},UserSettings.prototype.skin=function(val){return null!=val?this.set("skin",val,!1):this.get("skin",!1)||UserSettings.defaults.skin},UserSettings.prototype.theme=function(val){return null!=val?this.set("appTheme",val,!1):this.get("appTheme",!1)||UserSettings.defaults.theme},UserSettings.prototype.screensaver=function(val){return null!=val?this.set("screensaver",val,!1):this.get("screensaver",!1)||UserSettings.defaults.screensaver},UserSettings.prototype.soundEffects=function(val){return null!=val?this.set("soundeffects",val,!1):this.get("soundeffects",!1)||UserSettings.defaults.soundEffects},UserSettings.defaults={theme:null,enableThemeVideos:!0},UserSettings.prototype.loadQuerySettings=function(query,context){var key=getSavedQueryKey(context),values=this.get(key);if(values)return values=JSON.parse(values),Object.assign(query,values)},UserSettings.prototype.saveQuerySettings=function(query,context){var key=getSavedQueryKey(context),values={};return query.SortBy&&(values.SortBy=query.SortBy),query.SortOrder&&(values.SortOrder=query.SortOrder),this.set(key,JSON.stringify(values))},UserSettings.prototype.getSubtitleAppearanceSettings=function(key){return key=key||"localplayersubtitleappearance3",JSON.parse(this.get(key,!1)||"{}")},UserSettings.prototype.setSubtitleAppearanceSettings=function(value,key){return key=key||"localplayersubtitleappearance3",this.set(key,JSON.stringify(value),!1)},UserSettings}); \ No newline at end of file diff --git a/dashboard-ui/components/apphost.js b/dashboard-ui/components/apphost.js index ea8e255b40..ce875a22bf 100644 --- a/dashboard-ui/components/apphost.js +++ b/dashboard-ui/components/apphost.js @@ -1 +1 @@ -define(["appSettings","browser","events"],function(appSettings,browser,events){"use strict";function getBaseProfileOptions(item){var disableHlsVideoAudioCodecs=[];return item&&(!browser.edge&&canPlayNativeHls()||(disableHlsVideoAudioCodecs.push("mp3"),disableHlsVideoAudioCodecs.push("ac3"),disableHlsVideoAudioCodecs.push("eac3"))),{enableMkvProgressive:!1,disableHlsVideoAudioCodecs:disableHlsVideoAudioCodecs}}function canPlayNativeHls(){var media=document.createElement("video");return!(!media.canPlayType("application/x-mpegURL").replace(/no/,"")&&!media.canPlayType("application/vnd.apple.mpegURL").replace(/no/,""))}function getDeviceProfileForWindowsUwp(item){return new Promise(function(resolve,reject){require(["browserdeviceprofile","environments/windows-uwp/mediacaps"],function(profileBuilder,uwpMediaCaps){var profileOptions=getBaseProfileOptions(item);profileOptions.supportsDts=uwpMediaCaps.supportsDTS(),profileOptions.supportsTrueHd=uwpMediaCaps.supportsDolby(),profileOptions.audioChannels=uwpMediaCaps.getAudioChannels(),resolve(profileBuilder(profileOptions))})})}function getDeviceProfile(item,options){return options=options||{},self.Windows?getDeviceProfileForWindowsUwp(item):new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){var profile=profileBuilder(getBaseProfileOptions(item));item&&!options.isRetry&&"allcomplexformats"!==appSettings.get("subtitleburnin")&&(browser.orsay||browser.tizen||(profile.SubtitleProfiles.push({Format:"ass",Method:"External"}),profile.SubtitleProfiles.push({Format:"ssa",Method:"External"}))),resolve(profile)})})}function getCapabilities(){return getDeviceProfile().then(function(profile){var supportsPersistentIdentifier=!!browser.edgeUwp,caps={PlayableMediaTypes:["Audio","Video"],SupportsPersistentIdentifier:supportsPersistentIdentifier,DeviceProfile:profile};return caps})}function generateDeviceId(){return new Promise(function(resolve,reject){require(["cryptojs-sha1"],function(){var keys=[];keys.push(navigator.userAgent),keys.push((new Date).getTime()),resolve(CryptoJS.SHA1(keys.join("|")).toString())})})}function getDeviceId(){var key="_deviceId2",deviceId=appSettings.get(key);return deviceId?Promise.resolve(deviceId):generateDeviceId().then(function(deviceId){return appSettings.set(key,deviceId),deviceId})}function getDeviceName(){var deviceName;return deviceName=browser.tizen?"Samsung Smart TV":browser.web0S?"LG Smart TV":browser.operaTv?"Opera TV":browser.xboxOne?"Xbox One":browser.ps4?"Sony PS4":browser.chrome?"Chrome":browser.edge?"Edge":browser.firefox?"Firefox":browser.msie?"Internet Explorer":"Web Browser",browser.ipad?deviceName+=" Ipad":browser.iphone?deviceName+=" Iphone":browser.android&&(deviceName+=" Android"),deviceName}function supportsVoiceInput(){return!browser.tv&&(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.oSpeechRecognition||window.msSpeechRecognition)}function supportsFullscreen(){if(browser.tv)return!1;var element=document.documentElement;return!!(element.requestFullscreen||element.mozRequestFullScreen||element.webkitRequestFullscreen||element.msRequestFullscreen)||!!document.createElement("video").webkitEnterFullscreen}function getSyncProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile","appSettings"],function(profileBuilder,appSettings){var profile=profileBuilder();profile.MaxStaticMusicBitrate=appSettings.maxStaticMusicBitrate(),resolve(profile)})})}function getDefaultLayout(){return"desktop"}function supportsHtmlMediaAutoplay(){if(browser.edgeUwp||browser.tizen||browser.web0S||browser.orsay||browser.operaTv||browser.ps4||browser.xboxOne)return!0;if(browser.mobile)return!1;var savedResult=appSettings.get(htmlMediaAutoplayAppStorageKey);return"true"===savedResult||"false"!==savedResult&&null}function isXboxUWP(){return!1}function cueSupported(){try{var video=document.createElement("video"),style=document.createElement("style");style.textContent="video::cue {background: inherit}",document.body.appendChild(style),document.body.appendChild(video);var cue=window.getComputedStyle(video,"::cue").background;return document.body.removeChild(style),document.body.removeChild(video),!!cue.length}catch(err){return console.log("Error detecting cue support:"+err),!1}}var htmlMediaAutoplayAppStorageKey="supportshtmlmediaautoplay0",supportedFeatures=function(){var features=["sharing"];return browser.edgeUwp||browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()||features.push("filedownload"),browser.operaTv||browser.tizen||browser.orsay||browser.web0s?features.push("exit"):(features.push("exitmenu"),features.push("plugins")),browser.operaTv||browser.tizen||browser.orsay||browser.web0s||browser.ps4||(features.push("externallinks"),features.push("externalpremium")),browser.operaTv||features.push("externallinkdisplay"),supportsVoiceInput()&&features.push("voiceinput"),browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()||features.push("displaymode"),supportsHtmlMediaAutoplay()&&(features.push("htmlaudioautoplay"),features.push("htmlvideoautoplay")),browser.edgeUwp&&(isXboxUWP()||features.push("sync")),supportsFullscreen()&&features.push("fullscreenchange"),(browser.chrome||browser.edge&&!browser.slow)&&(browser.noAnimation||browser.edgeUwp||browser.xboxOne||features.push("imageanalysis")),Dashboard.isConnectMode()&&features.push("multiserver"),(browser.tv||browser.xboxOne||browser.ps4||browser.mobile||isXboxUWP())&&features.push("physicalvolumecontrol"),browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()||features.push("remotecontrol"),!(browser.operaTv||browser.tizen||browser.orsay||browser.web0s||browser.edgeUwp),features.push("otherapppromotions"),features.push("targetblank"),browser.orsay||browser.tizen||browser.msie||!(browser.firefox||browser.ps4||browser.edge||cueSupported())||features.push("subtitleappearancesettings"),browser.orsay||browser.tizen||features.push("subtitleburnsettings"),browser.tv||browser.ps4||browser.xboxOne||isXboxUWP()||features.push("fileinput"),features}();supportedFeatures.indexOf("htmlvideoautoplay")===-1&&supportsHtmlMediaAutoplay()!==!1&&require(["autoPlayDetect"],function(autoPlayDetect){autoPlayDetect.supportsHtmlMediaAutoplay().then(function(){appSettings.set(htmlMediaAutoplayAppStorageKey,"true"),supportedFeatures.push("htmlvideoautoplay"),supportedFeatures.push("htmlaudioautoplay")},function(){appSettings.set(htmlMediaAutoplayAppStorageKey,"false")})});var appInfo,visibilityChange,visibilityState,version=window.dashboardVersion||"3.0",appHost={getWindowState:function(){return document.windowState||"Normal"},setWindowState:function(state){alert("setWindowState is not supported and should not be called")},exit:function(){if(browser.tizen)try{tizen.application.getCurrentApplication().exit()}catch(err){console.log("error closing application: "+err)}else window.close()},supports:function(command){return supportedFeatures.indexOf(command.toLowerCase())!==-1},appInfo:function(){return appInfo?Promise.resolve(appInfo):getDeviceId().then(function(deviceId){return appInfo={deviceId:deviceId,deviceName:getDeviceName(),appName:"Emby Mobile",appVersion:version}})},getCapabilities:getCapabilities,preferVisualCards:browser.android||browser.chrome,moreIcon:browser.safari||browser.edge?"dots-horiz":"dots-vert",getSyncProfile:getSyncProfile,getDefaultLayout:getDefaultLayout,getDeviceProfile:getDeviceProfile};return"undefined"!=typeof document.visibilityState?(visibilityChange="visibilitychange",visibilityState="hidden"):"undefined"!=typeof document.mozHidden?(visibilityChange="mozvisibilitychange",visibilityState="mozVisibilityState"):"undefined"!=typeof document.msHidden?(visibilityChange="msvisibilitychange",visibilityState="msVisibilityState"):"undefined"!=typeof document.webkitHidden&&(visibilityChange="webkitvisibilitychange",visibilityState="webkitVisibilityState"),document.addEventListener(visibilityChange,function(){document[visibilityState]?console.log("app is hiden"):(console.log("triggering app resume event"),events.trigger(appHost,"resume"))}),appHost}); \ No newline at end of file +define(["appSettings","browser","events"],function(appSettings,browser,events){"use strict";function getBaseProfileOptions(item){var disableHlsVideoAudioCodecs=[];return item&&(!browser.edge&&canPlayNativeHls()||(disableHlsVideoAudioCodecs.push("mp3"),disableHlsVideoAudioCodecs.push("ac3"),disableHlsVideoAudioCodecs.push("eac3"))),{enableMkvProgressive:!1,disableHlsVideoAudioCodecs:disableHlsVideoAudioCodecs}}function canPlayNativeHls(){var media=document.createElement("video");return!(!media.canPlayType("application/x-mpegURL").replace(/no/,"")&&!media.canPlayType("application/vnd.apple.mpegURL").replace(/no/,""))}function getDeviceProfileForWindowsUwp(item){return new Promise(function(resolve,reject){require(["browserdeviceprofile","environments/windows-uwp/mediacaps"],function(profileBuilder,uwpMediaCaps){var profileOptions=getBaseProfileOptions(item);profileOptions.supportsDts=uwpMediaCaps.supportsDTS(),profileOptions.supportsTrueHd=uwpMediaCaps.supportsDolby(),profileOptions.audioChannels=uwpMediaCaps.getAudioChannels(),resolve(profileBuilder(profileOptions))})})}function getDeviceProfile(item,options){return options=options||{},self.Windows?getDeviceProfileForWindowsUwp(item):new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){var profile=profileBuilder(getBaseProfileOptions(item));item&&!options.isRetry&&"allcomplexformats"!==appSettings.get("subtitleburnin")&&(browser.orsay||browser.tizen||(profile.SubtitleProfiles.push({Format:"ass",Method:"External"}),profile.SubtitleProfiles.push({Format:"ssa",Method:"External"}))),resolve(profile)})})}function getCapabilities(){return getDeviceProfile().then(function(profile){var supportsPersistentIdentifier=!!browser.edgeUwp,caps={PlayableMediaTypes:["Audio","Video"],SupportsPersistentIdentifier:supportsPersistentIdentifier,DeviceProfile:profile};return caps})}function generateDeviceId(){return new Promise(function(resolve,reject){require(["cryptojs-sha1"],function(){var keys=[];keys.push(navigator.userAgent),keys.push((new Date).getTime()),resolve(CryptoJS.SHA1(keys.join("|")).toString())})})}function getDeviceId(){var key="_deviceId2",deviceId=appSettings.get(key);return deviceId?Promise.resolve(deviceId):generateDeviceId().then(function(deviceId){return appSettings.set(key,deviceId),deviceId})}function getDeviceName(){var deviceName;return deviceName=browser.tizen?"Samsung Smart TV":browser.web0S?"LG Smart TV":browser.operaTv?"Opera TV":browser.xboxOne?"Xbox One":browser.ps4?"Sony PS4":browser.chrome?"Chrome":browser.edge?"Edge":browser.firefox?"Firefox":browser.msie?"Internet Explorer":"Web Browser",browser.ipad?deviceName+=" Ipad":browser.iphone?deviceName+=" Iphone":browser.android&&(deviceName+=" Android"),deviceName}function supportsVoiceInput(){return!browser.tv&&(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.oSpeechRecognition||window.msSpeechRecognition)}function supportsFullscreen(){if(browser.tv)return!1;var element=document.documentElement;return!!(element.requestFullscreen||element.mozRequestFullScreen||element.webkitRequestFullscreen||element.msRequestFullscreen)||!!document.createElement("video").webkitEnterFullscreen}function getSyncProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile","appSettings"],function(profileBuilder,appSettings){var profile=profileBuilder();profile.MaxStaticMusicBitrate=appSettings.maxStaticMusicBitrate(),resolve(profile)})})}function getDefaultLayout(){return"desktop"}function supportsHtmlMediaAutoplay(){if(browser.edgeUwp||browser.tizen||browser.web0S||browser.orsay||browser.operaTv||browser.ps4||browser.xboxOne)return!0;if(browser.mobile)return!1;var savedResult=appSettings.get(htmlMediaAutoplayAppStorageKey);return"true"===savedResult||"false"!==savedResult&&null}function isXboxUWP(){return!1}function cueSupported(){try{var video=document.createElement("video"),style=document.createElement("style");style.textContent="video::cue {background: inherit}",document.body.appendChild(style),document.body.appendChild(video);var cue=window.getComputedStyle(video,"::cue").background;return document.body.removeChild(style),document.body.removeChild(video),!!cue.length}catch(err){return console.log("Error detecting cue support:"+err),!1}}function onAppVisible(){_isHidden&&(_isHidden=!1,console.log("triggering app resume event"),events.trigger(appHost,"resume"))}function onAppHidden(){_isHidden||(_isHidden=!0,console.log("app is hidden"))}var htmlMediaAutoplayAppStorageKey="supportshtmlmediaautoplay0",supportedFeatures=function(){var features=["sharing"];return browser.edgeUwp||browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()||features.push("filedownload"),browser.operaTv||browser.tizen||browser.orsay||browser.web0s?features.push("exit"):(features.push("exitmenu"),features.push("plugins")),browser.operaTv||browser.tizen||browser.orsay||browser.web0s||browser.ps4||(features.push("externallinks"),features.push("externalpremium")),browser.operaTv||features.push("externallinkdisplay"),supportsVoiceInput()&&features.push("voiceinput"),!(browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()),supportsHtmlMediaAutoplay()&&(features.push("htmlaudioautoplay"),features.push("htmlvideoautoplay")),browser.edgeUwp&&(isXboxUWP()||features.push("sync")),supportsFullscreen()&&features.push("fullscreenchange"),(browser.chrome||browser.edge&&!browser.slow)&&(browser.noAnimation||browser.edgeUwp||browser.xboxOne||features.push("imageanalysis")),Dashboard.isConnectMode()&&features.push("multiserver"),(browser.tv||browser.xboxOne||browser.ps4||browser.mobile||isXboxUWP())&&features.push("physicalvolumecontrol"),browser.tv||browser.xboxOne||browser.ps4||isXboxUWP()||features.push("remotecontrol"),!(browser.operaTv||browser.tizen||browser.orsay||browser.web0s||browser.edgeUwp),features.push("otherapppromotions"),features.push("targetblank"),browser.orsay||browser.tizen||browser.msie||!(browser.firefox||browser.ps4||browser.edge||cueSupported())||features.push("subtitleappearancesettings"),browser.orsay||browser.tizen||features.push("subtitleburnsettings"),browser.tv||browser.ps4||browser.xboxOne||isXboxUWP()||features.push("fileinput"),Dashboard.isConnectMode()&&features.push("displaylanguage"),features}();supportedFeatures.indexOf("htmlvideoautoplay")===-1&&supportsHtmlMediaAutoplay()!==!1&&require(["autoPlayDetect"],function(autoPlayDetect){autoPlayDetect.supportsHtmlMediaAutoplay().then(function(){appSettings.set(htmlMediaAutoplayAppStorageKey,"true"),supportedFeatures.push("htmlvideoautoplay"),supportedFeatures.push("htmlaudioautoplay")},function(){appSettings.set(htmlMediaAutoplayAppStorageKey,"false")})});var appInfo,visibilityChange,visibilityState,version=window.dashboardVersion||"3.0",appHost={getWindowState:function(){return document.windowState||"Normal"},setWindowState:function(state){alert("setWindowState is not supported and should not be called")},exit:function(){if(browser.tizen)try{tizen.application.getCurrentApplication().exit()}catch(err){console.log("error closing application: "+err)}else window.close()},supports:function(command){return supportedFeatures.indexOf(command.toLowerCase())!==-1},appInfo:function(){return appInfo?Promise.resolve(appInfo):getDeviceId().then(function(deviceId){return appInfo={deviceId:deviceId,deviceName:getDeviceName(),appName:"Emby Mobile",appVersion:version}})},getCapabilities:getCapabilities,preferVisualCards:browser.android||browser.chrome,moreIcon:browser.safari||browser.edge?"dots-horiz":"dots-vert",getSyncProfile:getSyncProfile,getDefaultLayout:getDefaultLayout,getDeviceProfile:getDeviceProfile};"undefined"!=typeof document.visibilityState?(visibilityChange="visibilitychange",visibilityState="hidden"):"undefined"!=typeof document.mozHidden?(visibilityChange="mozvisibilitychange",visibilityState="mozVisibilityState"):"undefined"!=typeof document.msHidden?(visibilityChange="msvisibilitychange",visibilityState="msVisibilityState"):"undefined"!=typeof document.webkitHidden&&(visibilityChange="webkitvisibilitychange",visibilityState="webkitVisibilityState");var _isHidden=!1;return document.addEventListener(visibilityChange,function(){document[visibilityState]?onAppHidden():onAppVisible()}),window.addEventListener("focus",onAppVisible),window.addEventListener("blur",onAppHidden),appHost}); \ No newline at end of file diff --git a/dashboard-ui/mypreferencesdisplay.html b/dashboard-ui/mypreferencesdisplay.html index a90fbd9d2f..34dee2a197 100644 --- a/dashboard-ui/mypreferencesdisplay.html +++ b/dashboard-ui/mypreferencesdisplay.html @@ -1,95 +1,4 @@ 
-
-
-
-

- ${HeaderDisplay} -

-
- -
${FeatureRequiresEmbyPremiere}
-
-
- -
${FeatureRequiresEmbyPremiere}
-
-
-
-
- -
-
${LabelPreferredDisplayLanguageHelp}
- -
-
-
-
-
- -
${LabelEnableBackdropsHelp}
-
-
- -
${LabelEnableThemeSongsHelp}
-
-
-
-
- -
${LabelDisplayMissingEpisodesWithinSeasonsHelp}
-
-
- -
+
\ No newline at end of file diff --git a/dashboard-ui/scripts/autobackdrops.js b/dashboard-ui/scripts/autobackdrops.js index 74ebf7f57e..909d4bd099 100644 --- a/dashboard-ui/scripts/autobackdrops.js +++ b/dashboard-ui/scripts/autobackdrops.js @@ -1 +1 @@ -define(["backdrop","appStorage","libraryMenu"],function(backdrop,appStorage,libraryMenu){"use strict";function enabled(){var apiClient=window.ApiClient;if(!apiClient)return!1;var userId=apiClient.getCurrentUserId(),val=appStorage.getItem("enableBackdrops-"+userId);return"1"==val}function getBackdropItemIds(apiClient,userId,types,parentId){var key="backdrops2_"+userId+(types||"")+(parentId||""),data=cache[key];if(data)return console.log("Found backdrop id list in cache. Key: "+key),data=JSON.parse(data),Promise.resolve(data);var options={SortBy:"IsFavoriteOrLiked,Random",Limit:20,Recursive:!0,IncludeItemTypes:types,ImageTypes:"Backdrop",ParentId:parentId,EnableTotalRecordCount:!1};return apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var images=result.Items.map(function(i){return{Id:i.Id,tag:i.BackdropImageTags[0],ServerId:i.ServerId}});return cache[key]=JSON.stringify(images),images})}function showBackdrop(type,parentId){var apiClient=window.ApiClient;apiClient&&getBackdropItemIds(apiClient,apiClient.getCurrentUserId(),type,parentId).then(function(images){images.length?backdrop.setBackdrops(images.map(function(i){return i.BackdropImageTags=[i.tag],i})):backdrop.clear()})}var cache={};pageClassOn("pagebeforeshow","page",function(){var page=this;if(!page.classList.contains("selfBackdropPage"))if(page.classList.contains("backdropPage"))if(enabled()){var type=page.getAttribute("data-backdroptype"),parentId=page.classList.contains("globalBackdropPage")?"":libraryMenu.getTopParentId();showBackdrop(type,parentId)}else page.classList.remove("backdropPage"),backdrop.clear();else backdrop.clear()})}); \ No newline at end of file +define(["backdrop","userSettings","libraryMenu"],function(backdrop,userSettings,libraryMenu){"use strict";function enabled(){return userSettings.enableBackdrops()}function getBackdropItemIds(apiClient,userId,types,parentId){var key="backdrops2_"+userId+(types||"")+(parentId||""),data=cache[key];if(data)return console.log("Found backdrop id list in cache. Key: "+key),data=JSON.parse(data),Promise.resolve(data);var options={SortBy:"IsFavoriteOrLiked,Random",Limit:20,Recursive:!0,IncludeItemTypes:types,ImageTypes:"Backdrop",ParentId:parentId,EnableTotalRecordCount:!1};return apiClient.getItems(apiClient.getCurrentUserId(),options).then(function(result){var images=result.Items.map(function(i){return{Id:i.Id,tag:i.BackdropImageTags[0],ServerId:i.ServerId}});return cache[key]=JSON.stringify(images),images})}function showBackdrop(type,parentId){var apiClient=window.ApiClient;apiClient&&getBackdropItemIds(apiClient,apiClient.getCurrentUserId(),type,parentId).then(function(images){images.length?backdrop.setBackdrops(images.map(function(i){return i.BackdropImageTags=[i.tag],i})):backdrop.clear()})}var cache={};pageClassOn("pagebeforeshow","page",function(){var page=this;if(!page.classList.contains("selfBackdropPage"))if(page.classList.contains("backdropPage"))if(enabled()){var type=page.getAttribute("data-backdroptype"),parentId=page.classList.contains("globalBackdropPage")?"":libraryMenu.getTopParentId();showBackdrop(type,parentId)}else page.classList.remove("backdropPage"),backdrop.clear();else backdrop.clear()})}); \ No newline at end of file diff --git a/dashboard-ui/scripts/mypreferencesdisplay.js b/dashboard-ui/scripts/mypreferencesdisplay.js index 55fd17b645..55815e10bb 100644 --- a/dashboard-ui/scripts/mypreferencesdisplay.js +++ b/dashboard-ui/scripts/mypreferencesdisplay.js @@ -1 +1 @@ -define(["userSettingsBuilder","appStorage","loading","skinManager","emby-linkbutton"],function(userSettingsBuilder,appStorage,loading,skinManager){"use strict";function fillThemes(select,isDashboard){select.innerHTML=skinManager.getThemes().map(function(t){var value=t.id;return t.isDefault&&!isDashboard?value="":t.isDefaultServerDashboard&&isDashboard&&(value=""),'"}).join("")}return function(view,params){function loadForm(page,user){user.Policy.IsAdministrator?page.querySelector(".selectDashboardThemeContainer").classList.remove("hide"):page.querySelector(".selectDashboardThemeContainer").classList.add("hide"),userSettingsInstance.setUserInfo(userId,ApiClient).then(function(){var selectTheme=page.querySelector("#selectTheme"),selectDashboardTheme=page.querySelector("#selectDashboardTheme");fillThemes(selectTheme),fillThemes(selectDashboardTheme,!0),userSettingsLoaded=!0,page.querySelector(".chkDisplayMissingEpisodes").checked=user.Configuration.DisplayMissingEpisodes||!1,page.querySelector("#chkThemeSong").checked=userSettingsInstance.enableThemeSongs(),page.querySelector("#selectBackdrop").value=appStorage.getItem("enableBackdrops-"+user.Id)||"0",page.querySelector("#selectLanguage").value=userSettingsInstance.language()||"",selectDashboardTheme.value=userSettingsInstance.dashboardTheme()||"",selectTheme.value=userSettingsInstance.theme()||"",loading.hide()})}function refreshGlobalUserSettings(){require(["userSettings"],function(userSettings){userSettings.importFrom(userSettingsInstance)})}function saveUser(page,user){return user.Configuration.DisplayMissingEpisodes=page.querySelector(".chkDisplayMissingEpisodes").checked,userSettingsLoaded&&(AppInfo.supportsUserDisplayLanguageSetting&&userSettingsInstance.language(page.querySelector("#selectLanguage").value),userSettingsInstance.enableThemeSongs(page.querySelector("#chkThemeSong").checked),userSettingsInstance.dashboardTheme(page.querySelector("#selectDashboardTheme").value),userSettingsInstance.theme(page.querySelector("#selectTheme").value),userId===Dashboard.getCurrentUserId()&&(skinManager.setTheme(userSettingsInstance.theme()||"dark"),refreshGlobalUserSettings())),appStorage.setItem("enableBackdrops-"+user.Id,page.querySelector("#selectBackdrop").value),ApiClient.updateUserConfiguration(user.Id,user.Configuration)}function save(page){autoSave||loading.show(),ApiClient.getUser(userId).then(function(user){saveUser(page,user).then(function(){loading.hide(),autoSave||require(["toast"],function(toast){toast(Globalize.translate("SettingsSaved"))})},function(){loading.hide()})})}var userSettingsLoaded,userId=params.userId||Dashboard.getCurrentUserId(),userSettingsInstance=new userSettingsBuilder,autoSave=!0;view.querySelector(".displayPreferencesForm").addEventListener("submit",function(e){return save(view),e.preventDefault(),!1}),autoSave?view.querySelector(".btnSave").classList.add("hide"):view.querySelector(".btnSave").classList.remove("hide"),view.addEventListener("viewshow",function(){var page=this;loading.show(),ApiClient.getUser(userId).then(function(user){loadForm(page,user)}),AppInfo.supportsUserDisplayLanguageSetting?page.querySelector(".languageSection").classList.remove("hide"):page.querySelector(".languageSection").classList.add("hide")}),view.addEventListener("viewbeforehide",function(){var page=this;autoSave&&save(page)})}}); \ No newline at end of file +define(["displaySettings","userSettingsBuilder"],function(DisplaySettings,userSettingsBuilder){"use strict";return function(view,params){var settingsInstance,userId=params.userId||ApiClient.getCurrentUserId(),userSettings=new userSettingsBuilder,autoSave=!0;view.addEventListener("viewshow",function(){settingsInstance||(settingsInstance=new DisplaySettings({serverId:ApiClient.serverId(),userId:userId,element:view.querySelector(".settingsContainer"),userSettings:userSettings,enableSaveButton:!autoSave,enableSaveConfirmation:!autoSave})),settingsInstance.loadData()}),view.addEventListener("viewbeforehide",function(){autoSave&&settingsInstance&&settingsInstance.submit()}),view.addEventListener("viewdestroy",function(){settingsInstance&&(settingsInstance.destroy(),settingsInstance=null)})}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index c3bfad8f09..b349b88ced 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1,2 +1,2 @@ -function getWindowLocationSearch(win){"use strict";var search=(win||window).location.search;if(!search){var index=window.location.href.indexOf("?");index!=-1&&(search=window.location.href.substring(index))}return search||""}function getParameterByName(name,url){"use strict";name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function pageClassOn(eventName,className,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.classList.contains(className)&&fn.call(target,e)})}function pageIdOn(eventName,id,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.id===id&&fn.call(target,e)})}var Dashboard={isConnectMode:function(){if(AppInfo.isNativeApp)return!0;var url=window.location.href.toLowerCase();return url.indexOf("mediabrowser.tv")!=-1||url.indexOf("emby.media")!=-1},isRunningInCordova:function(){return"cordova"==window.appMode},allowPluginPages:function(pluginId){var allowedPluginConfigs=["14f5f69e-4c8d-491b-8917-8e90e8317530","e711475e-efad-431b-8527-033ba9873a34","dc372f99-4e0e-4c6b-8c18-2b887ca4530c","0417264b-5a93-4ad0-a1f0-b87569b7cf80","899c12c7-5b40-4c4e-9afd-afd74a685eb1","830fc68f-b964-4d2f-b139-48e22cd143c7","b9f0c474-e9a8-4292-ae41-eb3c1542f4cd","b0daa30f-2e09-4083-a6ce-459d9fecdd80","7cfbb821-e8fd-40ab-b64e-a7749386a6b2","4C2FDA1C-FD5E-433A-AD2B-718E0B73E9A9","cd5a19be-7676-48ef-b64f-a17c98f2b889","b2ff6a63-303a-4a84-b937-6e12f87e3eb9","9574ac10-bf23-49bc-949f-924f23cfa48f","66fd72a4-7e8e-4f22-8d1c-022ce4b9b0d5","8e791e2a-058a-4b12-8493-8bf69d92d685","577f89eb-58a7-4013-be06-9a970ddb1377","6153FDF0-40CC-4457-8730-3B4A19512BAE","de228f12-e43e-4bd9-9fc0-2830819c3b92","6C3B6965-C257-47C2-AA02-64457AE21D91","2FE79C34-C9DC-4D94-9DF2-2F3F36764414","AB95885A-1D0E-445E-BDBF-80C1912C98C5","986a7283-205a-4436-862d-23135c067f8a","8abc6789-fde2-4705-8592-4028806fa343","2850d40d-9c66-4525-aa46-968e8ef04e97"],disallowPlugins=AppInfo.isNativeApp&&allowedPluginConfigs.indexOf((pluginId||"").toLowerCase())===-1;return!disallowPlugins},getCurrentUser:function(){return window.ApiClient.getCurrentUser(!1)},serverAddress:function(){if(Dashboard.isConnectMode()){var apiClient=window.ApiClient;return apiClient?apiClient.serverAddress():null}var urlLower=window.location.href.toLowerCase(),index=urlLower.lastIndexOf("/web");if(index!=-1)return urlLower.substring(0,index);var loc=window.location,address=loc.protocol+"//"+loc.hostname;return loc.port&&(address+=":"+loc.port),address},getCurrentUserId:function(){var apiClient=window.ApiClient;return apiClient?apiClient.getCurrentUserId():null},onServerChanged:function(userId,accessToken,apiClient){apiClient=apiClient||window.ApiClient,window.ApiClient=apiClient},logout:function(logoutWithServer){function onLogoutDone(){var loginPage;Dashboard.isConnectMode()?(loginPage="connectlogin.html",window.ApiClient=null):loginPage="login.html",Dashboard.navigate(loginPage)}logoutWithServer===!1?onLogoutDone():ConnectionManager.logout().then(onLogoutDone)},getConfigurationPageUrl:function(name){return Dashboard.isConnectMode()?"configurationpageext?name="+encodeURIComponent(name):"configurationpage?name="+encodeURIComponent(name)},getConfigurationResourceUrl:function(name){return Dashboard.isConnectMode()?ApiClient.getUrl("web/ConfigurationPage",{name:name}):Dashboard.getConfigurationPageUrl(name)},navigate:function(url,preserveQueryString){if(!url)throw new Error("url cannot be null or empty");var queryString=getWindowLocationSearch();return preserveQueryString&&queryString&&(url+=queryString),new Promise(function(resolve,reject){require(["appRouter"],function(appRouter){return appRouter.show(url).then(resolve,reject)})})},processPluginConfigurationUpdateResult:function(){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processServerConfigurationUpdateResult:function(result){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processErrorResponse:function(response){require(["loading"],function(loading){loading.hide()});var status=""+response.status;response.statusText&&(status=response.statusText),Dashboard.alert({title:status,message:response.headers?response.headers.get("X-Application-Error-Code"):null})},alert:function(options){return"string"==typeof options?void require(["toast"],function(toast){toast({text:options})}):void require(["alert"],function(alert){alert({title:options.title||Globalize.translate("HeaderAlert"),text:options.message}).then(options.callback||function(){})})},restartServer:function(){var apiClient=window.ApiClient;apiClient&&(require(["loading"],function(loading){loading.show()}),apiClient.restartServer().then(function(){setTimeout(function(){Dashboard.reloadPageWhenServerAvailable()},250)}))},reloadPageWhenServerAvailable:function(retryCount){var apiClient=window.ApiClient;apiClient&&apiClient.getJSON(apiClient.getUrl("System/Info")).then(function(info){info.IsShuttingDown?Dashboard.retryReload(retryCount):window.location.reload(!0)},function(){Dashboard.retryReload(retryCount)})},retryReload:function(retryCount){setTimeout(function(){retryCount=retryCount||0,retryCount++,retryCount<40&&Dashboard.reloadPageWhenServerAvailable(retryCount)},500)},showUserFlyout:function(){Dashboard.navigate("mypreferencesmenu.html")},getPluginSecurityInfo:function(){var apiClient=window.ApiClient;if(!apiClient)return Promise.reject();var cachedInfo=Dashboard.pluginSecurityInfo;return cachedInfo?Promise.resolve(cachedInfo):apiClient.getPluginSecurityInfo().then(function(result){return Dashboard.pluginSecurityInfo=result,result})},resetPluginSecurityInfo:function(){Dashboard.pluginSecurityInfo=null},getSupportedRemoteCommands:function(){return["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"]},capabilities:function(){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:Dashboard.getSupportedRemoteCommands(),SupportsPersistentIdentifier:Dashboard.isRunningInCordova(),SupportsMediaControl:!0,SupportedLiveMediaTypes:["Audio","Video"]};return Dashboard.isRunningInCordova()&&!browserInfo.safari&&(caps.SupportsSync=!0,caps.SupportsContentUploading=!0),caps}},AppInfo={};!function(){"use strict";function setAppInfo(){var isCordova=Dashboard.isRunningInCordova();AppInfo.enableAppStorePolicy=isCordova,isCordova?AppInfo.isNativeApp=!0:AppInfo.enableSupporterMembership=!0,AppInfo.supportsUserDisplayLanguageSetting=Dashboard.isConnectMode()}function initializeApiClient(apiClient){AppInfo.enableAppStorePolicy&&(apiClient.getAvailablePlugins=function(){return Promise.resolve([])})}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&($.ajax=newApiClient.ajax)}function defineConnectionManager(connectionManager){window.ConnectionManager=connectionManager,define("connectionManager",[],function(){return connectionManager})}function bindConnectionManagerEvents(connectionManager,events,userSettings){window.Events=events,events.on(ConnectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){if(!localApiClient){var server=connectionManager.getLastUsedServer();server&&(localApiClient=connectionManager.getApiClient(server.Id))}return localApiClient},connectionManager.onLocalUserSignedIn=function(user){return localApiClient=connectionManager.getApiClient(user.ServerId),window.ApiClient=localApiClient,userSettings.setUserInfo(user.Id,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)})}function createConnectionManager(){return new Promise(function(resolve,reject){require(["connectionManagerFactory","apphost","credentialprovider","events","userSettings"],function(connectionManagerExports,apphost,credentialProvider,events,userSettings){window.MediaBrowser=Object.assign(window.MediaBrowser||{},connectionManagerExports);var credentialProviderInstance=new credentialProvider,promises=[apphost.getSyncProfile(),apphost.appInfo()];Promise.all(promises).then(function(responses){var deviceProfile=responses[0],appInfo=responses[1],capabilities=Dashboard.capabilities();capabilities.DeviceProfile=deviceProfile;var connectionManager=new MediaBrowser.ConnectionManager(credentialProviderInstance,appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,capabilities,window.devicePixelRatio);return defineConnectionManager(connectionManager),bindConnectionManagerEvents(connectionManager,events,userSettings),Dashboard.isConnectMode()?void resolve():(console.log("loading ApiClient singleton"),getRequirePromise(["apiclient"]).then(function(apiClientFactory){console.log("creating ApiClient singleton");var apiClient=new apiClientFactory(Dashboard.serverAddress(),appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,window.devicePixelRatio);apiClient.enableAutomaticNetworking=!1,connectionManager.addApiClient(apiClient),window.ApiClient=apiClient,localApiClient=apiClient,console.log("loaded ApiClient singleton"),resolve()}))})})})}function setDocumentClasses(browser){var elem=document.documentElement;AppInfo.enableSupporterMembership||elem.classList.add("supporterMembershipDisabled")}function returnFirstDependency(obj){return obj}function getSettingsBuilder(UserSettings,layoutManager,browser){return UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):(val=this.get("enableThemeVideos",!1),val?"false"!==val:!layoutManager.mobile&&!browser.slow)},UserSettings}function getBowerPath(){return"bower_components"}function getLayoutManager(layoutManager,appHost){return appHost.getDefaultLayout&&(layoutManager.defaultLayout=appHost.getDefaultLayout()),layoutManager.init(),layoutManager}function getAppStorage(basePath){try{return localStorage.setItem("_test","0"),localStorage.removeItem("_test"),basePath+"/appstorage-localstorage"}catch(e){return basePath+"/appstorage-memory"}}function createWindowHeadroom(Headroom){var headroom=new Headroom([],{});return headroom.init(),headroom}function getCastSenderApiLoader(){var ccLoaded=!1;return{load:function(){return ccLoaded?Promise.resolve():new Promise(function(resolve,reject){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript"),fileref.onload=function(){ccLoaded=!0,resolve()},fileref.setAttribute("src","https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),document.querySelector("head").appendChild(fileref)})}}}function getDummyCastSenderApiLoader(){return{load:function(){return window.chrome=window.chrome||{},Promise.resolve()}}}function createSharedAppFooter(appFooter){var footer=new appFooter({});return footer}function onRequireJsError(requireType,requireModules){console.log("RequireJS error: "+(requireType||"unknown")+". Failed modules: "+(requireModules||[]).join(","))}function initRequire(){var urlArgs="v="+(window.dashboardVersion||(new Date).getDate()),bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents",paths={velocity:bowerPath+"/velocity/velocity.min",vibrant:bowerPath+"/vibrant/dist/vibrant",staticBackdrops:embyWebComponentsBowerPath+"/staticbackdrops",ironCardList:"components/ironcardlist/ironcardlist",scrollThreshold:"components/scrollthreshold",playlisteditor:"components/playlisteditor/playlisteditor",medialibrarycreator:"components/medialibrarycreator/medialibrarycreator",medialibraryeditor:"components/medialibraryeditor/medialibraryeditor",howler:bowerPath+"/howlerjs/howler.min",sortable:bowerPath+"/Sortable/Sortable.min",isMobile:bowerPath+"/isMobile/isMobile.min",masonry:bowerPath+"/masonry/dist/masonry.pkgd.min",humanedate:"components/humanedate",libraryBrowser:"scripts/librarybrowser",events:apiClientBowerPath+"/events",credentialprovider:apiClientBowerPath+"/credentials",connectionManagerFactory:bowerPath+"/emby-apiclient/connectionmanager",visibleinviewport:embyWebComponentsBowerPath+"/visibleinviewport",browserdeviceprofile:embyWebComponentsBowerPath+"/browserdeviceprofile",browser:embyWebComponentsBowerPath+"/browser",inputManager:embyWebComponentsBowerPath+"/inputmanager",qualityoptions:embyWebComponentsBowerPath+"/qualityoptions",hammer:bowerPath+"/hammerjs/hammer.min",pageJs:embyWebComponentsBowerPath+"/pagejs/page",focusManager:embyWebComponentsBowerPath+"/focusmanager",datetime:embyWebComponentsBowerPath+"/datetime",globalize:embyWebComponentsBowerPath+"/globalize",itemHelper:embyWebComponentsBowerPath+"/itemhelper",itemShortcuts:embyWebComponentsBowerPath+"/shortcuts",serverNotifications:embyWebComponentsBowerPath+"/servernotifications",playbackManager:embyWebComponentsBowerPath+"/playback/playbackmanager",playQueueManager:embyWebComponentsBowerPath+"/playback/playqueuemanager",autoPlayDetect:embyWebComponentsBowerPath+"/playback/autoplaydetect",nowPlayingHelper:embyWebComponentsBowerPath+"/playback/nowplayinghelper",pluginManager:embyWebComponentsBowerPath+"/pluginmanager",packageManager:embyWebComponentsBowerPath+"/packagemanager"};paths.hlsjs=bowerPath+"/hlsjs/dist/hls.min",paths.flvjs=embyWebComponentsBowerPath+"/flvjs/flv.min",paths.shaka=embyWebComponentsBowerPath+"/shaka/shaka-player.compiled",define("chromecastHelper",[embyWebComponentsBowerPath+"/chromecast/chromecasthelpers"],returnFirstDependency),define("mediaSession",[embyWebComponentsBowerPath+"/playback/mediasession"],returnFirstDependency),define("webActionSheet",[embyWebComponentsBowerPath+"/actionsheet/actionsheet"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.sharingMenu="cordova/sharingwidget":define("sharingMenu",[embyWebComponentsBowerPath+"/sharing/sharingmenu"],returnFirstDependency),paths.wakeonlan=apiClientBowerPath+"/wakeonlan",define("libjass",[bowerPath+"/libjass/libjass.min","css!"+bowerPath+"/libjass/libjass"],returnFirstDependency),window.IntersectionObserver?define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-intersectionobserver"],returnFirstDependency):define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-scroll"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",["components/maintabsmanager"],returnFirstDependency),define("imageLoader",[embyWebComponentsBowerPath+"/images/imagehelper"],returnFirstDependency),define("appFooter",[embyWebComponentsBowerPath+"/appfooter/appfooter"],returnFirstDependency),define("directorybrowser",["components/directorybrowser/directorybrowser"],returnFirstDependency),define("metadataEditor",[embyWebComponentsBowerPath+"/metadataeditor/metadataeditor"],returnFirstDependency),define("personEditor",[embyWebComponentsBowerPath+"/metadataeditor/personeditor"],returnFirstDependency),define("playerSelectionMenu",[embyWebComponentsBowerPath+"/playback/playerselection"],returnFirstDependency),define("playerSettingsMenu",[embyWebComponentsBowerPath+"/playback/playersettingsmenu"],returnFirstDependency),define("playMethodHelper",[embyWebComponentsBowerPath+"/playback/playmethodhelper"],returnFirstDependency),define("brightnessOsd",[embyWebComponentsBowerPath+"/playback/brightnessosd"],returnFirstDependency),define("libraryMenu",["scripts/librarymenu"],returnFirstDependency),define("emby-collapse",[embyWebComponentsBowerPath+"/emby-collapse/emby-collapse"],returnFirstDependency),define("emby-button",[embyWebComponentsBowerPath+"/emby-button/emby-button"],returnFirstDependency),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[embyWebComponentsBowerPath+"/emby-itemscontainer/emby-itemscontainer"],returnFirstDependency),define("emby-scroller",[embyWebComponentsBowerPath+"/emby-scroller/emby-scroller"],returnFirstDependency),define("emby-tabs",[embyWebComponentsBowerPath+"/emby-tabs/emby-tabs"],returnFirstDependency),define("emby-scrollbuttons",[embyWebComponentsBowerPath+"/emby-scrollbuttons/emby-scrollbuttons"],returnFirstDependency),define("emby-progressring",[embyWebComponentsBowerPath+"/emby-progressring/emby-progressring"],returnFirstDependency),define("emby-itemrefreshindicator",[embyWebComponentsBowerPath+"/emby-itemrefreshindicator/emby-itemrefreshindicator"],returnFirstDependency),define("itemHoverMenu",[embyWebComponentsBowerPath+"/itemhovermenu/itemhovermenu"],returnFirstDependency),define("multiSelect",[embyWebComponentsBowerPath+"/multiselect/multiselect"],returnFirstDependency),define("alphaPicker",[embyWebComponentsBowerPath+"/alphapicker/alphapicker"],returnFirstDependency),define("paper-icon-button-light",[embyWebComponentsBowerPath+"/emby-button/paper-icon-button-light"],returnFirstDependency),define("connectHelper",[embyWebComponentsBowerPath+"/emby-connect/connecthelper"],returnFirstDependency),define("emby-input",[embyWebComponentsBowerPath+"/emby-input/emby-input"],returnFirstDependency),define("emby-select",[embyWebComponentsBowerPath+"/emby-select/emby-select"],returnFirstDependency),define("emby-slider",[embyWebComponentsBowerPath+"/emby-slider/emby-slider"],returnFirstDependency),define("emby-checkbox",[embyWebComponentsBowerPath+"/emby-checkbox/emby-checkbox"],returnFirstDependency),define("emby-radio",[embyWebComponentsBowerPath+"/emby-radio/emby-radio"],returnFirstDependency),define("emby-textarea",[embyWebComponentsBowerPath+"/emby-textarea/emby-textarea"],returnFirstDependency),define("collectionEditor",[embyWebComponentsBowerPath+"/collectioneditor/collectioneditor"],returnFirstDependency),define("playlistEditor",[embyWebComponentsBowerPath+"/playlisteditor/playlisteditor"],returnFirstDependency),define("recordingCreator",[embyWebComponentsBowerPath+"/recordingcreator/recordingcreator"],returnFirstDependency),define("recordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/recordingeditor"],returnFirstDependency),define("seriesRecordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/seriesrecordingeditor"],returnFirstDependency),define("recordingFields",[embyWebComponentsBowerPath+"/recordingcreator/recordingfields"],returnFirstDependency),define("recordingButton",[embyWebComponentsBowerPath+"/recordingcreator/recordingbutton"],returnFirstDependency),define("recordingHelper",[embyWebComponentsBowerPath+"/recordingcreator/recordinghelper"],returnFirstDependency),define("subtitleEditor",[embyWebComponentsBowerPath+"/subtitleeditor/subtitleeditor"],returnFirstDependency),define("itemIdentifier",[embyWebComponentsBowerPath+"/itemidentifier/itemidentifier"],returnFirstDependency),define("mediaInfo",[embyWebComponentsBowerPath+"/mediainfo/mediainfo"],returnFirstDependency),define("itemContextMenu",[embyWebComponentsBowerPath+"/itemcontextmenu"],returnFirstDependency),define("imageEditor",[embyWebComponentsBowerPath+"/imageeditor/imageeditor"],returnFirstDependency),define("imageDownloader",[embyWebComponentsBowerPath+"/imagedownloader/imagedownloader"],returnFirstDependency),define("dom",[embyWebComponentsBowerPath+"/dom"],returnFirstDependency),define("playerStats",[embyWebComponentsBowerPath+"/playerstats/playerstats"],returnFirstDependency),define("searchFields",[embyWebComponentsBowerPath+"/search/searchfields"],returnFirstDependency),define("searchResults",[embyWebComponentsBowerPath+"/search/searchresults"],returnFirstDependency),define("upNextDialog",[embyWebComponentsBowerPath+"/upnextdialog/upnextdialog"],returnFirstDependency),define("fullscreen-doubleclick",[embyWebComponentsBowerPath+"/fullscreen/fullscreen-doubleclick"],returnFirstDependency),define("fullscreenManager",[embyWebComponentsBowerPath+"/fullscreen/fullscreenmanager","events"],returnFirstDependency),define("headroom",[embyWebComponentsBowerPath+"/headroom/headroom"],returnFirstDependency),define("subtitleAppearanceHelper",[embyWebComponentsBowerPath+"/subtitlesettings/subtitleappearancehelper"],returnFirstDependency),define("subtitleSettings",[embyWebComponentsBowerPath+"/subtitlesettings/subtitlesettings"],returnFirstDependency),define("playbackSettings",[embyWebComponentsBowerPath+"/playbacksettings/playbacksettings"],returnFirstDependency),define("homescreenSettings",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettings"],returnFirstDependency),define("homescreenSettingsDialog",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettingsdialog"],returnFirstDependency),define("layoutManager",[embyWebComponentsBowerPath+"/layoutmanager","apphost"],getLayoutManager),define("homeSections",[embyWebComponentsBowerPath+"/homesections/homesections"],returnFirstDependency),define("playMenu",[embyWebComponentsBowerPath+"/playmenu"],returnFirstDependency),define("refreshDialog",[embyWebComponentsBowerPath+"/refreshdialog/refreshdialog"],returnFirstDependency),define("backdrop",[embyWebComponentsBowerPath+"/backdrop/backdrop"],returnFirstDependency),define("fetchHelper",[embyWebComponentsBowerPath+"/fetchhelper"],returnFirstDependency),define("roundCardStyle",["cardStyle","css!"+embyWebComponentsBowerPath+"/cardbuilder/roundcard"],returnFirstDependency),define("cardStyle",["css!"+embyWebComponentsBowerPath+"/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[embyWebComponentsBowerPath+"/cardbuilder/cardbuilder"],returnFirstDependency),define("peoplecardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/peoplecardbuilder"],returnFirstDependency),define("chaptercardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/chaptercardbuilder"],returnFirstDependency),define("mouseManager",[embyWebComponentsBowerPath+"/input/mouse"],returnFirstDependency),define("flexStyles",["css!"+embyWebComponentsBowerPath+"/flexstyles"],returnFirstDependency),define("deleteHelper",[embyWebComponentsBowerPath+"/deletehelper"],returnFirstDependency),define("tvguide",[embyWebComponentsBowerPath+"/guide/guide"],returnFirstDependency),define("programStyles",["css!"+embyWebComponentsBowerPath+"/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[embyWebComponentsBowerPath+"/guide/guide-settings"],returnFirstDependency),define("syncDialog",[embyWebComponentsBowerPath+"/sync/sync"],returnFirstDependency),define("syncJobEditor",[embyWebComponentsBowerPath+"/sync/syncjobeditor"],returnFirstDependency),define("syncJobList",[embyWebComponentsBowerPath+"/sync/syncjoblist"],returnFirstDependency),define("viewManager",[embyWebComponentsBowerPath+"/viewmanager/viewmanager"],function(viewManager){return window.ViewManager=viewManager,viewManager.dispatchPageEvents(!0),viewManager}),Dashboard.isRunningInCordova()&&window.MainActivity?define("shell",["cordova/shell"],returnFirstDependency):define("shell",[embyWebComponentsBowerPath+"/shell"],returnFirstDependency),define("sharingmanager",[embyWebComponentsBowerPath+"/sharing/sharingmanager"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.apphost="cordova/apphost":paths.apphost="components/apphost",Dashboard.isRunningInCordova()&&window.MainActivity?(paths.appStorage="cordova/appstorage",paths.filesystem="cordova/filesystem"):(paths.appStorage=getAppStorage(apiClientBowerPath),paths.filesystem=embyWebComponentsBowerPath+"/filesystem");var sha1Path=bowerPath+"/cryptojslib/components/sha1-min",md5Path=bowerPath+"/cryptojslib/components/md5-min",shim={};shim[sha1Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},shim[md5Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},requirejs.config({waitSeconds:0,map:{"*":{css:bowerPath+"/emby-webcomponents/require/requirecss",html:bowerPath+"/emby-webcomponents/require/requirehtml",text:bowerPath+"/emby-webcomponents/require/requiretext"}},urlArgs:urlArgs,paths:paths,shim:shim,onError:onRequireJsError}),requirejs.onError=onRequireJsError,define("cryptojs-sha1",[sha1Path],returnFirstDependency),define("cryptojs-md5",[md5Path],returnFirstDependency),define("jstree",[bowerPath+"/jstree/dist/jstree","css!thirdparty/jstree/themes/default/style.min.css"],returnFirstDependency),define("dashboardcss",["css!css/dashboard"],returnFirstDependency),define("jqmwidget",["thirdparty/jquerymobile-1.4.5/jqm.widget"],returnFirstDependency),define("jqmpopup",["thirdparty/jquerymobile-1.4.5/jqm.popup","css!thirdparty/jquerymobile-1.4.5/jqm.popup.css"],returnFirstDependency),define("jqmlistview",[],returnFirstDependency),define("jqmpanel",["thirdparty/jquerymobile-1.4.5/jqm.panel","css!thirdparty/jquerymobile-1.4.5/jqm.panel.css"],returnFirstDependency),define("slideshow",[embyWebComponentsBowerPath+"/slideshow/slideshow"],returnFirstDependency),define("fetch",[bowerPath+"/fetch/fetch"],returnFirstDependency),define("raf",[embyWebComponentsBowerPath+"/polyfills/raf"],returnFirstDependency),define("functionbind",[embyWebComponentsBowerPath+"/polyfills/bind"],returnFirstDependency),define("arraypolyfills",[embyWebComponentsBowerPath+"/polyfills/array"],returnFirstDependency),define("objectassign",[embyWebComponentsBowerPath+"/polyfills/objectassign"],returnFirstDependency),define("clearButtonStyle",["css!"+embyWebComponentsBowerPath+"/clearbutton"],returnFirstDependency),define("userdataButtons",[embyWebComponentsBowerPath+"/userdatabuttons/userdatabuttons"],returnFirstDependency),define("emby-playstatebutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-playstatebutton"],returnFirstDependency),define("emby-ratingbutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-ratingbutton"],returnFirstDependency),define("emby-downloadbutton",[embyWebComponentsBowerPath+"/sync/emby-downloadbutton"],returnFirstDependency),define("listView",[embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("listViewStyle",["css!"+embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!"+embyWebComponentsBowerPath+"/formdialog"],returnFirstDependency),define("indicators",[embyWebComponentsBowerPath+"/indicators/indicators"],returnFirstDependency),define("registrationServices",[embyWebComponentsBowerPath+"/registrationservices/registrationservices"],returnFirstDependency),Dashboard.isRunningInCordova()?(define("iapManager",["cordova/iap"],returnFirstDependency),define("fileupload",["cordova/fileupload"],returnFirstDependency)):(define("iapManager",["components/iap"],returnFirstDependency),define("fileupload",[apiClientBowerPath+"/fileupload"],returnFirstDependency)),define("connectionmanager",[apiClientBowerPath+"/connectionmanager"]),define("cameraRoll",[apiClientBowerPath+"/cameraroll"],returnFirstDependency),define("contentuploader",[apiClientBowerPath+"/sync/contentuploader"],returnFirstDependency),define("serversync",[apiClientBowerPath+"/sync/serversync"],returnFirstDependency),define("multiserversync",[apiClientBowerPath+"/sync/multiserversync"],returnFirstDependency),define("mediasync",[apiClientBowerPath+"/sync/mediasync"],returnFirstDependency),define("idb",[embyWebComponentsBowerPath+"/idb"],returnFirstDependency),define("itemrepository",[apiClientBowerPath+"/sync/itemrepository"],returnFirstDependency),define("useractionrepository",[apiClientBowerPath+"/sync/useractionrepository"],returnFirstDependency),self.Windows?(define("bgtaskregister",["environments/windows-uwp/bgtaskregister"],returnFirstDependency),define("transfermanager",["environments/windows-uwp/transfermanager"],returnFirstDependency),define("filerepository",["environments/windows-uwp/filerepository"],returnFirstDependency)):(define("transfermanager",[apiClientBowerPath+"/sync/transfermanager"],returnFirstDependency),define("filerepository",[apiClientBowerPath+"/sync/filerepository"],returnFirstDependency)),define("swiper",[bowerPath+"/Swiper/dist/js/swiper.min","css!"+bowerPath+"/Swiper/dist/css/swiper.min"],returnFirstDependency),define("scroller",[embyWebComponentsBowerPath+"/scroller/smoothscroller"],returnFirstDependency),define("toast",[embyWebComponentsBowerPath+"/toast/toast"],returnFirstDependency),define("scrollHelper",[embyWebComponentsBowerPath+"/scrollhelper"],returnFirstDependency),define("touchHelper",[embyWebComponentsBowerPath+"/touchhelper"],returnFirstDependency),define("appSettings",[embyWebComponentsBowerPath+"/appsettings"],returnFirstDependency),define("userSettings",[embyWebComponentsBowerPath+"/usersettings/usersettings"],returnFirstDependency),define("userSettingsBuilder",[embyWebComponentsBowerPath+"/usersettings/usersettingsbuilder","layoutManager","browser"],getSettingsBuilder),define("material-icons",["css!"+embyWebComponentsBowerPath+"/fonts/material-icons/style"],returnFirstDependency),define("systemFontsCss",["css!"+embyWebComponentsBowerPath+"/fonts/fonts"],returnFirstDependency),define("systemFontsSizedCss",["css!"+embyWebComponentsBowerPath+"/fonts/fonts.sized"],returnFirstDependency),define("scrollStyles",["css!"+embyWebComponentsBowerPath+"/scrollstyles"],returnFirstDependency),define("imageUploader",[embyWebComponentsBowerPath+"/imageuploader/imageuploader"],returnFirstDependency),define("navdrawer",["components/navdrawer/navdrawer"],returnFirstDependency),define("viewcontainer",["components/viewcontainer-lite","css!"+embyWebComponentsBowerPath+"/viewmanager/viewcontainer-lite"],returnFirstDependency),define("queryString",[bowerPath+"/query-string/index"],function(){return queryString}),define("jQuery",[bowerPath+"/jquery/dist/jquery.slim.min"],function(){return window.ApiClient&&(jQuery.ajax=ApiClient.ajax),jQuery}),define("fnchecked",["legacy/fnchecked"],returnFirstDependency),define("dialogHelper",[embyWebComponentsBowerPath+"/dialoghelper/dialoghelper"],returnFirstDependency),define("inputmanager",["inputManager"],returnFirstDependency),define("headroom-window",["headroom"],createWindowHeadroom),define("appFooter-shared",["appFooter"],createSharedAppFooter),define("skinManager",[embyWebComponentsBowerPath+"/skinmanager"],function(skinManager){return skinManager.loadUserSkin=function(options){require(["appRouter"],function(appRouter){options=options||{},options.start?appRouter.invokeShortcut(options.start):appRouter.goHome()})},skinManager.getThemes=function(){return[{name:"Apple TV",id:"appletv"},{name:"Dark",id:"dark",isDefault:!0},{name:"Dark (green accent)",id:"dark-green"},{name:"Dark (red accent)",id:"dark-red"},{name:"Halloween",id:"halloween"},{name:"Light",id:"light",isDefaultServerDashboard:!0},{name:"Light (blue accent)",id:"light-blue"},{name:"Light (green accent)",id:"light-green"},{name:"Light (pink accent)",id:"light-pink"},{name:"Light (purple accent)",id:"light-purple"},{name:"Light (red accent)",id:"light-red"},{name:"Windows Media Center",id:"wmc"}]},skinManager}),define("connectionManager",[],function(){return ConnectionManager}),define("apiClientResolver",[],function(){return function(){return window.ApiClient}}),define("appRouter",[embyWebComponentsBowerPath+"/router","itemHelper"],function(appRouter,itemHelper){function showItem(item,serverId,options){"string"==typeof item?require(["connectionManager"],function(connectionManager){var apiClient=connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}):(2==arguments.length&&(options=arguments[1]),appRouter.show("/"+appRouter.getRouteUrl(item,options),{item:item}))}return appRouter.showLocalLogin=function(serverId,manualLogin){Dashboard.navigate("login.html?serverid="+serverId)},appRouter.showVideoOsd=function(){return Dashboard.navigate("videoosd.html")},appRouter.showSelectServer=function(){Dashboard.isConnectMode()?Dashboard.navigate("selectserver.html"):Dashboard.navigate("login.html")},appRouter.showWelcome=function(){Dashboard.isConnectMode()?Dashboard.navigate("connectlogin.html?mode=welcome"):Dashboard.navigate("login.html"); +function getWindowLocationSearch(win){"use strict";var search=(win||window).location.search;if(!search){var index=window.location.href.indexOf("?");index!=-1&&(search=window.location.href.substring(index))}return search||""}function getParameterByName(name,url){"use strict";name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function pageClassOn(eventName,className,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.classList.contains(className)&&fn.call(target,e)})}function pageIdOn(eventName,id,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.id===id&&fn.call(target,e)})}var Dashboard={isConnectMode:function(){if(AppInfo.isNativeApp)return!0;var url=window.location.href.toLowerCase();return url.indexOf("mediabrowser.tv")!=-1||url.indexOf("emby.media")!=-1},isRunningInCordova:function(){return"cordova"==window.appMode},allowPluginPages:function(pluginId){var allowedPluginConfigs=["14f5f69e-4c8d-491b-8917-8e90e8317530","e711475e-efad-431b-8527-033ba9873a34","dc372f99-4e0e-4c6b-8c18-2b887ca4530c","0417264b-5a93-4ad0-a1f0-b87569b7cf80","899c12c7-5b40-4c4e-9afd-afd74a685eb1","830fc68f-b964-4d2f-b139-48e22cd143c7","b9f0c474-e9a8-4292-ae41-eb3c1542f4cd","b0daa30f-2e09-4083-a6ce-459d9fecdd80","7cfbb821-e8fd-40ab-b64e-a7749386a6b2","4C2FDA1C-FD5E-433A-AD2B-718E0B73E9A9","cd5a19be-7676-48ef-b64f-a17c98f2b889","b2ff6a63-303a-4a84-b937-6e12f87e3eb9","9574ac10-bf23-49bc-949f-924f23cfa48f","66fd72a4-7e8e-4f22-8d1c-022ce4b9b0d5","8e791e2a-058a-4b12-8493-8bf69d92d685","577f89eb-58a7-4013-be06-9a970ddb1377","6153FDF0-40CC-4457-8730-3B4A19512BAE","de228f12-e43e-4bd9-9fc0-2830819c3b92","6C3B6965-C257-47C2-AA02-64457AE21D91","2FE79C34-C9DC-4D94-9DF2-2F3F36764414","AB95885A-1D0E-445E-BDBF-80C1912C98C5","986a7283-205a-4436-862d-23135c067f8a","8abc6789-fde2-4705-8592-4028806fa343","2850d40d-9c66-4525-aa46-968e8ef04e97"],disallowPlugins=AppInfo.isNativeApp&&allowedPluginConfigs.indexOf((pluginId||"").toLowerCase())===-1;return!disallowPlugins},getCurrentUser:function(){return window.ApiClient.getCurrentUser(!1)},serverAddress:function(){if(Dashboard.isConnectMode()){var apiClient=window.ApiClient;return apiClient?apiClient.serverAddress():null}var urlLower=window.location.href.toLowerCase(),index=urlLower.lastIndexOf("/web");if(index!=-1)return urlLower.substring(0,index);var loc=window.location,address=loc.protocol+"//"+loc.hostname;return loc.port&&(address+=":"+loc.port),address},getCurrentUserId:function(){var apiClient=window.ApiClient;return apiClient?apiClient.getCurrentUserId():null},onServerChanged:function(userId,accessToken,apiClient){apiClient=apiClient||window.ApiClient,window.ApiClient=apiClient},logout:function(logoutWithServer){function onLogoutDone(){var loginPage;Dashboard.isConnectMode()?(loginPage="connectlogin.html",window.ApiClient=null):loginPage="login.html",Dashboard.navigate(loginPage)}logoutWithServer===!1?onLogoutDone():ConnectionManager.logout().then(onLogoutDone)},getConfigurationPageUrl:function(name){return Dashboard.isConnectMode()?"configurationpageext?name="+encodeURIComponent(name):"configurationpage?name="+encodeURIComponent(name)},getConfigurationResourceUrl:function(name){return Dashboard.isConnectMode()?ApiClient.getUrl("web/ConfigurationPage",{name:name}):Dashboard.getConfigurationPageUrl(name)},navigate:function(url,preserveQueryString){if(!url)throw new Error("url cannot be null or empty");var queryString=getWindowLocationSearch();return preserveQueryString&&queryString&&(url+=queryString),new Promise(function(resolve,reject){require(["appRouter"],function(appRouter){return appRouter.show(url).then(resolve,reject)})})},processPluginConfigurationUpdateResult:function(){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processServerConfigurationUpdateResult:function(result){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processErrorResponse:function(response){require(["loading"],function(loading){loading.hide()});var status=""+response.status;response.statusText&&(status=response.statusText),Dashboard.alert({title:status,message:response.headers?response.headers.get("X-Application-Error-Code"):null})},alert:function(options){return"string"==typeof options?void require(["toast"],function(toast){toast({text:options})}):void require(["alert"],function(alert){alert({title:options.title||Globalize.translate("HeaderAlert"),text:options.message}).then(options.callback||function(){})})},restartServer:function(){var apiClient=window.ApiClient;apiClient&&(require(["loading"],function(loading){loading.show()}),apiClient.restartServer().then(function(){setTimeout(function(){Dashboard.reloadPageWhenServerAvailable()},250)}))},reloadPageWhenServerAvailable:function(retryCount){var apiClient=window.ApiClient;apiClient&&apiClient.getJSON(apiClient.getUrl("System/Info")).then(function(info){info.IsShuttingDown?Dashboard.retryReload(retryCount):window.location.reload(!0)},function(){Dashboard.retryReload(retryCount)})},retryReload:function(retryCount){setTimeout(function(){retryCount=retryCount||0,retryCount++,retryCount<40&&Dashboard.reloadPageWhenServerAvailable(retryCount)},500)},showUserFlyout:function(){Dashboard.navigate("mypreferencesmenu.html")},getPluginSecurityInfo:function(){var apiClient=window.ApiClient;if(!apiClient)return Promise.reject();var cachedInfo=Dashboard.pluginSecurityInfo;return cachedInfo?Promise.resolve(cachedInfo):apiClient.getPluginSecurityInfo().then(function(result){return Dashboard.pluginSecurityInfo=result,result})},resetPluginSecurityInfo:function(){Dashboard.pluginSecurityInfo=null},getSupportedRemoteCommands:function(){return["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"]},capabilities:function(){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:Dashboard.getSupportedRemoteCommands(),SupportsPersistentIdentifier:Dashboard.isRunningInCordova(),SupportsMediaControl:!0,SupportedLiveMediaTypes:["Audio","Video"]};return Dashboard.isRunningInCordova()&&!browserInfo.safari&&(caps.SupportsSync=!0,caps.SupportsContentUploading=!0),caps}},AppInfo={};!function(){"use strict";function setAppInfo(){var isCordova=Dashboard.isRunningInCordova();AppInfo.enableAppStorePolicy=isCordova,isCordova?AppInfo.isNativeApp=!0:AppInfo.enableSupporterMembership=!0}function initializeApiClient(apiClient){AppInfo.enableAppStorePolicy&&(apiClient.getAvailablePlugins=function(){return Promise.resolve([])})}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&($.ajax=newApiClient.ajax)}function defineConnectionManager(connectionManager){window.ConnectionManager=connectionManager,define("connectionManager",[],function(){return connectionManager})}function bindConnectionManagerEvents(connectionManager,events,userSettings){window.Events=events,events.on(ConnectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){if(!localApiClient){var server=connectionManager.getLastUsedServer();server&&(localApiClient=connectionManager.getApiClient(server.Id))}return localApiClient},connectionManager.onLocalUserSignedIn=function(user){return localApiClient=connectionManager.getApiClient(user.ServerId),window.ApiClient=localApiClient,userSettings.setUserInfo(user.Id,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)})}function createConnectionManager(){return new Promise(function(resolve,reject){require(["connectionManagerFactory","apphost","credentialprovider","events","userSettings"],function(connectionManagerExports,apphost,credentialProvider,events,userSettings){window.MediaBrowser=Object.assign(window.MediaBrowser||{},connectionManagerExports);var credentialProviderInstance=new credentialProvider,promises=[apphost.getSyncProfile(),apphost.appInfo()];Promise.all(promises).then(function(responses){var deviceProfile=responses[0],appInfo=responses[1],capabilities=Dashboard.capabilities();capabilities.DeviceProfile=deviceProfile;var connectionManager=new MediaBrowser.ConnectionManager(credentialProviderInstance,appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,capabilities,window.devicePixelRatio);return defineConnectionManager(connectionManager),bindConnectionManagerEvents(connectionManager,events,userSettings),Dashboard.isConnectMode()?void resolve():(console.log("loading ApiClient singleton"),getRequirePromise(["apiclient"]).then(function(apiClientFactory){console.log("creating ApiClient singleton");var apiClient=new apiClientFactory(Dashboard.serverAddress(),appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,window.devicePixelRatio);apiClient.enableAutomaticNetworking=!1,connectionManager.addApiClient(apiClient),window.ApiClient=apiClient,localApiClient=apiClient,console.log("loaded ApiClient singleton"),resolve()}))})})})}function setDocumentClasses(browser){var elem=document.documentElement;AppInfo.enableSupporterMembership||elem.classList.add("supporterMembershipDisabled")}function returnFirstDependency(obj){return obj}function getSettingsBuilder(UserSettings,layoutManager,browser){return UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):(val=this.get("enableThemeVideos",!1),val?"false"!==val:!layoutManager.mobile&&!browser.slow)},UserSettings}function getBowerPath(){return"bower_components"}function getLayoutManager(layoutManager,appHost){return appHost.getDefaultLayout&&(layoutManager.defaultLayout=appHost.getDefaultLayout()),layoutManager.init(),layoutManager}function getAppStorage(basePath){try{return localStorage.setItem("_test","0"),localStorage.removeItem("_test"),basePath+"/appstorage-localstorage"}catch(e){return basePath+"/appstorage-memory"}}function createWindowHeadroom(Headroom){var headroom=new Headroom([],{});return headroom.init(),headroom}function getCastSenderApiLoader(){var ccLoaded=!1;return{load:function(){return ccLoaded?Promise.resolve():new Promise(function(resolve,reject){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript"),fileref.onload=function(){ccLoaded=!0,resolve()},fileref.setAttribute("src","https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),document.querySelector("head").appendChild(fileref)})}}}function getDummyCastSenderApiLoader(){return{load:function(){return window.chrome=window.chrome||{},Promise.resolve()}}}function createSharedAppFooter(appFooter){var footer=new appFooter({});return footer}function onRequireJsError(requireType,requireModules){console.log("RequireJS error: "+(requireType||"unknown")+". Failed modules: "+(requireModules||[]).join(","))}function initRequire(){var urlArgs="v="+(window.dashboardVersion||(new Date).getDate()),bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents",paths={velocity:bowerPath+"/velocity/velocity.min",vibrant:bowerPath+"/vibrant/dist/vibrant",staticBackdrops:embyWebComponentsBowerPath+"/staticbackdrops",ironCardList:"components/ironcardlist/ironcardlist",scrollThreshold:"components/scrollthreshold",playlisteditor:"components/playlisteditor/playlisteditor",medialibrarycreator:"components/medialibrarycreator/medialibrarycreator",medialibraryeditor:"components/medialibraryeditor/medialibraryeditor",howler:bowerPath+"/howlerjs/howler.min",sortable:bowerPath+"/Sortable/Sortable.min",isMobile:bowerPath+"/isMobile/isMobile.min",masonry:bowerPath+"/masonry/dist/masonry.pkgd.min",humanedate:"components/humanedate",libraryBrowser:"scripts/librarybrowser",events:apiClientBowerPath+"/events",credentialprovider:apiClientBowerPath+"/credentials",connectionManagerFactory:bowerPath+"/emby-apiclient/connectionmanager",visibleinviewport:embyWebComponentsBowerPath+"/visibleinviewport",browserdeviceprofile:embyWebComponentsBowerPath+"/browserdeviceprofile",browser:embyWebComponentsBowerPath+"/browser",inputManager:embyWebComponentsBowerPath+"/inputmanager",qualityoptions:embyWebComponentsBowerPath+"/qualityoptions",hammer:bowerPath+"/hammerjs/hammer.min",pageJs:embyWebComponentsBowerPath+"/pagejs/page",focusManager:embyWebComponentsBowerPath+"/focusmanager",datetime:embyWebComponentsBowerPath+"/datetime",globalize:embyWebComponentsBowerPath+"/globalize",itemHelper:embyWebComponentsBowerPath+"/itemhelper",itemShortcuts:embyWebComponentsBowerPath+"/shortcuts",serverNotifications:embyWebComponentsBowerPath+"/servernotifications",playbackManager:embyWebComponentsBowerPath+"/playback/playbackmanager",playQueueManager:embyWebComponentsBowerPath+"/playback/playqueuemanager",autoPlayDetect:embyWebComponentsBowerPath+"/playback/autoplaydetect",nowPlayingHelper:embyWebComponentsBowerPath+"/playback/nowplayinghelper",pluginManager:embyWebComponentsBowerPath+"/pluginmanager",packageManager:embyWebComponentsBowerPath+"/packagemanager"};paths.hlsjs=bowerPath+"/hlsjs/dist/hls.min",paths.flvjs=embyWebComponentsBowerPath+"/flvjs/flv.min",paths.shaka=embyWebComponentsBowerPath+"/shaka/shaka-player.compiled",define("chromecastHelper",[embyWebComponentsBowerPath+"/chromecast/chromecasthelpers"],returnFirstDependency),define("mediaSession",[embyWebComponentsBowerPath+"/playback/mediasession"],returnFirstDependency),define("webActionSheet",[embyWebComponentsBowerPath+"/actionsheet/actionsheet"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.sharingMenu="cordova/sharingwidget":define("sharingMenu",[embyWebComponentsBowerPath+"/sharing/sharingmenu"],returnFirstDependency),paths.wakeonlan=apiClientBowerPath+"/wakeonlan",define("libjass",[bowerPath+"/libjass/libjass.min","css!"+bowerPath+"/libjass/libjass"],returnFirstDependency),window.IntersectionObserver?define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-intersectionobserver"],returnFirstDependency):define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-scroll"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",["components/maintabsmanager"],returnFirstDependency),define("imageLoader",[embyWebComponentsBowerPath+"/images/imagehelper"],returnFirstDependency),define("appFooter",[embyWebComponentsBowerPath+"/appfooter/appfooter"],returnFirstDependency),define("directorybrowser",["components/directorybrowser/directorybrowser"],returnFirstDependency),define("metadataEditor",[embyWebComponentsBowerPath+"/metadataeditor/metadataeditor"],returnFirstDependency),define("personEditor",[embyWebComponentsBowerPath+"/metadataeditor/personeditor"],returnFirstDependency),define("playerSelectionMenu",[embyWebComponentsBowerPath+"/playback/playerselection"],returnFirstDependency),define("playerSettingsMenu",[embyWebComponentsBowerPath+"/playback/playersettingsmenu"],returnFirstDependency),define("playMethodHelper",[embyWebComponentsBowerPath+"/playback/playmethodhelper"],returnFirstDependency),define("brightnessOsd",[embyWebComponentsBowerPath+"/playback/brightnessosd"],returnFirstDependency),define("libraryMenu",["scripts/librarymenu"],returnFirstDependency),define("emby-collapse",[embyWebComponentsBowerPath+"/emby-collapse/emby-collapse"],returnFirstDependency),define("emby-button",[embyWebComponentsBowerPath+"/emby-button/emby-button"],returnFirstDependency),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[embyWebComponentsBowerPath+"/emby-itemscontainer/emby-itemscontainer"],returnFirstDependency),define("emby-scroller",[embyWebComponentsBowerPath+"/emby-scroller/emby-scroller"],returnFirstDependency),define("emby-tabs",[embyWebComponentsBowerPath+"/emby-tabs/emby-tabs"],returnFirstDependency),define("emby-scrollbuttons",[embyWebComponentsBowerPath+"/emby-scrollbuttons/emby-scrollbuttons"],returnFirstDependency),define("emby-progressring",[embyWebComponentsBowerPath+"/emby-progressring/emby-progressring"],returnFirstDependency),define("emby-itemrefreshindicator",[embyWebComponentsBowerPath+"/emby-itemrefreshindicator/emby-itemrefreshindicator"],returnFirstDependency),define("itemHoverMenu",[embyWebComponentsBowerPath+"/itemhovermenu/itemhovermenu"],returnFirstDependency),define("multiSelect",[embyWebComponentsBowerPath+"/multiselect/multiselect"],returnFirstDependency),define("alphaPicker",[embyWebComponentsBowerPath+"/alphapicker/alphapicker"],returnFirstDependency),define("paper-icon-button-light",[embyWebComponentsBowerPath+"/emby-button/paper-icon-button-light"],returnFirstDependency),define("connectHelper",[embyWebComponentsBowerPath+"/emby-connect/connecthelper"],returnFirstDependency),define("emby-input",[embyWebComponentsBowerPath+"/emby-input/emby-input"],returnFirstDependency),define("emby-select",[embyWebComponentsBowerPath+"/emby-select/emby-select"],returnFirstDependency),define("emby-slider",[embyWebComponentsBowerPath+"/emby-slider/emby-slider"],returnFirstDependency),define("emby-checkbox",[embyWebComponentsBowerPath+"/emby-checkbox/emby-checkbox"],returnFirstDependency),define("emby-radio",[embyWebComponentsBowerPath+"/emby-radio/emby-radio"],returnFirstDependency),define("emby-textarea",[embyWebComponentsBowerPath+"/emby-textarea/emby-textarea"],returnFirstDependency),define("collectionEditor",[embyWebComponentsBowerPath+"/collectioneditor/collectioneditor"],returnFirstDependency),define("playlistEditor",[embyWebComponentsBowerPath+"/playlisteditor/playlisteditor"],returnFirstDependency),define("recordingCreator",[embyWebComponentsBowerPath+"/recordingcreator/recordingcreator"],returnFirstDependency),define("recordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/recordingeditor"],returnFirstDependency),define("seriesRecordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/seriesrecordingeditor"],returnFirstDependency),define("recordingFields",[embyWebComponentsBowerPath+"/recordingcreator/recordingfields"],returnFirstDependency),define("recordingButton",[embyWebComponentsBowerPath+"/recordingcreator/recordingbutton"],returnFirstDependency),define("recordingHelper",[embyWebComponentsBowerPath+"/recordingcreator/recordinghelper"],returnFirstDependency),define("subtitleEditor",[embyWebComponentsBowerPath+"/subtitleeditor/subtitleeditor"],returnFirstDependency),define("itemIdentifier",[embyWebComponentsBowerPath+"/itemidentifier/itemidentifier"],returnFirstDependency),define("mediaInfo",[embyWebComponentsBowerPath+"/mediainfo/mediainfo"],returnFirstDependency),define("itemContextMenu",[embyWebComponentsBowerPath+"/itemcontextmenu"],returnFirstDependency),define("imageEditor",[embyWebComponentsBowerPath+"/imageeditor/imageeditor"],returnFirstDependency),define("imageDownloader",[embyWebComponentsBowerPath+"/imagedownloader/imagedownloader"],returnFirstDependency),define("dom",[embyWebComponentsBowerPath+"/dom"],returnFirstDependency),define("playerStats",[embyWebComponentsBowerPath+"/playerstats/playerstats"],returnFirstDependency),define("searchFields",[embyWebComponentsBowerPath+"/search/searchfields"],returnFirstDependency),define("searchResults",[embyWebComponentsBowerPath+"/search/searchresults"],returnFirstDependency),define("upNextDialog",[embyWebComponentsBowerPath+"/upnextdialog/upnextdialog"],returnFirstDependency),define("fullscreen-doubleclick",[embyWebComponentsBowerPath+"/fullscreen/fullscreen-doubleclick"],returnFirstDependency),define("fullscreenManager",[embyWebComponentsBowerPath+"/fullscreen/fullscreenmanager","events"],returnFirstDependency),define("headroom",[embyWebComponentsBowerPath+"/headroom/headroom"],returnFirstDependency),define("subtitleAppearanceHelper",[embyWebComponentsBowerPath+"/subtitlesettings/subtitleappearancehelper"],returnFirstDependency),define("subtitleSettings",[embyWebComponentsBowerPath+"/subtitlesettings/subtitlesettings"],returnFirstDependency),define("displaySettings",[embyWebComponentsBowerPath+"/displaysettings/displaysettings"],returnFirstDependency),define("playbackSettings",[embyWebComponentsBowerPath+"/playbacksettings/playbacksettings"],returnFirstDependency),define("homescreenSettings",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettings"],returnFirstDependency),define("homescreenSettingsDialog",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettingsdialog"],returnFirstDependency),define("layoutManager",[embyWebComponentsBowerPath+"/layoutmanager","apphost"],getLayoutManager),define("homeSections",[embyWebComponentsBowerPath+"/homesections/homesections"],returnFirstDependency),define("playMenu",[embyWebComponentsBowerPath+"/playmenu"],returnFirstDependency),define("refreshDialog",[embyWebComponentsBowerPath+"/refreshdialog/refreshdialog"],returnFirstDependency),define("backdrop",[embyWebComponentsBowerPath+"/backdrop/backdrop"],returnFirstDependency),define("fetchHelper",[embyWebComponentsBowerPath+"/fetchhelper"],returnFirstDependency),define("roundCardStyle",["cardStyle","css!"+embyWebComponentsBowerPath+"/cardbuilder/roundcard"],returnFirstDependency),define("cardStyle",["css!"+embyWebComponentsBowerPath+"/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[embyWebComponentsBowerPath+"/cardbuilder/cardbuilder"],returnFirstDependency),define("peoplecardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/peoplecardbuilder"],returnFirstDependency),define("chaptercardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/chaptercardbuilder"],returnFirstDependency),define("mouseManager",[embyWebComponentsBowerPath+"/input/mouse"],returnFirstDependency),define("flexStyles",["css!"+embyWebComponentsBowerPath+"/flexstyles"],returnFirstDependency),define("deleteHelper",[embyWebComponentsBowerPath+"/deletehelper"],returnFirstDependency),define("tvguide",[embyWebComponentsBowerPath+"/guide/guide"],returnFirstDependency),define("programStyles",["css!"+embyWebComponentsBowerPath+"/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[embyWebComponentsBowerPath+"/guide/guide-settings"],returnFirstDependency),define("syncDialog",[embyWebComponentsBowerPath+"/sync/sync"],returnFirstDependency),define("syncJobEditor",[embyWebComponentsBowerPath+"/sync/syncjobeditor"],returnFirstDependency),define("syncJobList",[embyWebComponentsBowerPath+"/sync/syncjoblist"],returnFirstDependency),define("viewManager",[embyWebComponentsBowerPath+"/viewmanager/viewmanager"],function(viewManager){return window.ViewManager=viewManager,viewManager.dispatchPageEvents(!0),viewManager}),Dashboard.isRunningInCordova()&&window.MainActivity?define("shell",["cordova/shell"],returnFirstDependency):define("shell",[embyWebComponentsBowerPath+"/shell"],returnFirstDependency),define("sharingmanager",[embyWebComponentsBowerPath+"/sharing/sharingmanager"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.apphost="cordova/apphost":paths.apphost="components/apphost",Dashboard.isRunningInCordova()&&window.MainActivity?(paths.appStorage="cordova/appstorage",paths.filesystem="cordova/filesystem"):(paths.appStorage=getAppStorage(apiClientBowerPath),paths.filesystem=embyWebComponentsBowerPath+"/filesystem");var sha1Path=bowerPath+"/cryptojslib/components/sha1-min",md5Path=bowerPath+"/cryptojslib/components/md5-min",shim={};shim[sha1Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},shim[md5Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},requirejs.config({waitSeconds:0,map:{"*":{css:bowerPath+"/emby-webcomponents/require/requirecss",html:bowerPath+"/emby-webcomponents/require/requirehtml",text:bowerPath+"/emby-webcomponents/require/requiretext"}},urlArgs:urlArgs,paths:paths,shim:shim,onError:onRequireJsError}),requirejs.onError=onRequireJsError,define("cryptojs-sha1",[sha1Path],returnFirstDependency),define("cryptojs-md5",[md5Path],returnFirstDependency),define("jstree",[bowerPath+"/jstree/dist/jstree","css!thirdparty/jstree/themes/default/style.min.css"],returnFirstDependency),define("dashboardcss",["css!css/dashboard"],returnFirstDependency),define("jqmwidget",["thirdparty/jquerymobile-1.4.5/jqm.widget"],returnFirstDependency),define("jqmpopup",["thirdparty/jquerymobile-1.4.5/jqm.popup","css!thirdparty/jquerymobile-1.4.5/jqm.popup.css"],returnFirstDependency),define("jqmlistview",[],returnFirstDependency),define("jqmpanel",["thirdparty/jquerymobile-1.4.5/jqm.panel","css!thirdparty/jquerymobile-1.4.5/jqm.panel.css"],returnFirstDependency),define("slideshow",[embyWebComponentsBowerPath+"/slideshow/slideshow"],returnFirstDependency),define("fetch",[bowerPath+"/fetch/fetch"],returnFirstDependency),define("raf",[embyWebComponentsBowerPath+"/polyfills/raf"],returnFirstDependency),define("functionbind",[embyWebComponentsBowerPath+"/polyfills/bind"],returnFirstDependency),define("arraypolyfills",[embyWebComponentsBowerPath+"/polyfills/array"],returnFirstDependency),define("objectassign",[embyWebComponentsBowerPath+"/polyfills/objectassign"],returnFirstDependency),define("clearButtonStyle",["css!"+embyWebComponentsBowerPath+"/clearbutton"],returnFirstDependency),define("userdataButtons",[embyWebComponentsBowerPath+"/userdatabuttons/userdatabuttons"],returnFirstDependency),define("emby-playstatebutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-playstatebutton"],returnFirstDependency),define("emby-ratingbutton",[embyWebComponentsBowerPath+"/userdatabuttons/emby-ratingbutton"],returnFirstDependency),define("emby-downloadbutton",[embyWebComponentsBowerPath+"/sync/emby-downloadbutton"],returnFirstDependency),define("listView",[embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("listViewStyle",["css!"+embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!"+embyWebComponentsBowerPath+"/formdialog"],returnFirstDependency),define("indicators",[embyWebComponentsBowerPath+"/indicators/indicators"],returnFirstDependency),define("registrationServices",[embyWebComponentsBowerPath+"/registrationservices/registrationservices"],returnFirstDependency),Dashboard.isRunningInCordova()?(define("iapManager",["cordova/iap"],returnFirstDependency),define("fileupload",["cordova/fileupload"],returnFirstDependency)):(define("iapManager",["components/iap"],returnFirstDependency),define("fileupload",[apiClientBowerPath+"/fileupload"],returnFirstDependency)),define("connectionmanager",[apiClientBowerPath+"/connectionmanager"]),define("cameraRoll",[apiClientBowerPath+"/cameraroll"],returnFirstDependency),define("contentuploader",[apiClientBowerPath+"/sync/contentuploader"],returnFirstDependency),define("serversync",[apiClientBowerPath+"/sync/serversync"],returnFirstDependency),define("multiserversync",[apiClientBowerPath+"/sync/multiserversync"],returnFirstDependency),define("mediasync",[apiClientBowerPath+"/sync/mediasync"],returnFirstDependency),define("idb",[embyWebComponentsBowerPath+"/idb"],returnFirstDependency),define("itemrepository",[apiClientBowerPath+"/sync/itemrepository"],returnFirstDependency),define("useractionrepository",[apiClientBowerPath+"/sync/useractionrepository"],returnFirstDependency),self.Windows?(define("bgtaskregister",["environments/windows-uwp/bgtaskregister"],returnFirstDependency),define("transfermanager",["environments/windows-uwp/transfermanager"],returnFirstDependency),define("filerepository",["environments/windows-uwp/filerepository"],returnFirstDependency)):(define("transfermanager",[apiClientBowerPath+"/sync/transfermanager"],returnFirstDependency),define("filerepository",[apiClientBowerPath+"/sync/filerepository"],returnFirstDependency)),define("swiper",[bowerPath+"/Swiper/dist/js/swiper.min","css!"+bowerPath+"/Swiper/dist/css/swiper.min"],returnFirstDependency),define("scroller",[embyWebComponentsBowerPath+"/scroller/smoothscroller"],returnFirstDependency),define("toast",[embyWebComponentsBowerPath+"/toast/toast"],returnFirstDependency),define("scrollHelper",[embyWebComponentsBowerPath+"/scrollhelper"],returnFirstDependency),define("touchHelper",[embyWebComponentsBowerPath+"/touchhelper"],returnFirstDependency),define("appSettings",[embyWebComponentsBowerPath+"/appsettings"],returnFirstDependency),define("userSettings",[embyWebComponentsBowerPath+"/usersettings/usersettings"],returnFirstDependency),define("userSettingsBuilder",[embyWebComponentsBowerPath+"/usersettings/usersettingsbuilder","layoutManager","browser"],getSettingsBuilder),define("material-icons",["css!"+embyWebComponentsBowerPath+"/fonts/material-icons/style"],returnFirstDependency),define("systemFontsCss",["css!"+embyWebComponentsBowerPath+"/fonts/fonts"],returnFirstDependency),define("systemFontsSizedCss",["css!"+embyWebComponentsBowerPath+"/fonts/fonts.sized"],returnFirstDependency),define("scrollStyles",["css!"+embyWebComponentsBowerPath+"/scrollstyles"],returnFirstDependency),define("imageUploader",[embyWebComponentsBowerPath+"/imageuploader/imageuploader"],returnFirstDependency),define("navdrawer",["components/navdrawer/navdrawer"],returnFirstDependency),define("viewcontainer",["components/viewcontainer-lite","css!"+embyWebComponentsBowerPath+"/viewmanager/viewcontainer-lite"],returnFirstDependency),define("queryString",[bowerPath+"/query-string/index"],function(){return queryString}),define("jQuery",[bowerPath+"/jquery/dist/jquery.slim.min"],function(){return window.ApiClient&&(jQuery.ajax=ApiClient.ajax),jQuery}),define("fnchecked",["legacy/fnchecked"],returnFirstDependency),define("dialogHelper",[embyWebComponentsBowerPath+"/dialoghelper/dialoghelper"],returnFirstDependency),define("inputmanager",["inputManager"],returnFirstDependency),define("headroom-window",["headroom"],createWindowHeadroom),define("appFooter-shared",["appFooter"],createSharedAppFooter),define("skinManager",[embyWebComponentsBowerPath+"/skinmanager"],function(skinManager){return skinManager.loadUserSkin=function(options){require(["appRouter"],function(appRouter){options=options||{},options.start?appRouter.invokeShortcut(options.start):appRouter.goHome()})},skinManager.getThemes=function(){return[{name:"Apple TV",id:"appletv"},{name:"Dark",id:"dark",isDefault:!0},{name:"Dark (green accent)",id:"dark-green"},{name:"Dark (red accent)",id:"dark-red"},{name:"Halloween",id:"halloween"},{name:"Light",id:"light",isDefaultServerDashboard:!0},{name:"Light (blue accent)",id:"light-blue"},{name:"Light (green accent)",id:"light-green"},{name:"Light (pink accent)",id:"light-pink"},{name:"Light (purple accent)",id:"light-purple"},{name:"Light (red accent)",id:"light-red"},{name:"Windows Media Center",id:"wmc"}]},skinManager}),define("connectionManager",[],function(){return ConnectionManager}),define("apiClientResolver",[],function(){return function(){return window.ApiClient}}),define("appRouter",[embyWebComponentsBowerPath+"/router","itemHelper"],function(appRouter,itemHelper){function showItem(item,serverId,options){"string"==typeof item?require(["connectionManager"],function(connectionManager){var apiClient=connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){appRouter.showItem(item,options)})}):(2==arguments.length&&(options=arguments[1]),appRouter.show("/"+appRouter.getRouteUrl(item,options),{item:item}))}return appRouter.showLocalLogin=function(serverId,manualLogin){Dashboard.navigate("login.html?serverid="+serverId)},appRouter.showVideoOsd=function(){return Dashboard.navigate("videoosd.html")},appRouter.showSelectServer=function(){Dashboard.isConnectMode()?Dashboard.navigate("selectserver.html"):Dashboard.navigate("login.html")},appRouter.showWelcome=function(){Dashboard.isConnectMode()?Dashboard.navigate("connectlogin.html?mode=welcome"):Dashboard.navigate("login.html"); },appRouter.showConnectLogin=function(){Dashboard.navigate("connectlogin.html")},appRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},appRouter.showGuide=function(){Dashboard.navigate("livetv.html?tab=1")},appRouter.goHome=function(){Dashboard.navigate("home.html")},appRouter.showSearch=function(){Dashboard.navigate("search.html")},appRouter.showLiveTV=function(){Dashboard.navigate("livetv.html")},appRouter.showRecordedTV=function(){Dashboard.navigate("livetv.html?tab=3")},appRouter.showFavorites=function(){Dashboard.navigate("home.html?tab=1")},appRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},appRouter.showNowPlaying=function(){Dashboard.navigate("nowplaying.html")},appRouter.setTitle=function(title){LibraryMenu.setTitle(title)},appRouter.getRouteUrl=function(item,options){if(!item)throw new Error("item cannot be null");if(item.url)return item.url;var context=options?options.context:null,topParentId=options?options.topParentId||options.parentId:null;if("string"==typeof item){if("downloads"===item)return"offline/offline.html";if("downloadsettings"===item)return"mysyncsettings.html";if("managedownloads"===item)return"managedownloads.html";if("manageserver"===item)return"dashboard.html";if("recordedtv"===item)return"livetv.html?tab=3&serverId="+options.serverId;if("nextup"===item)return"secondaryitems.html?type=nextup&serverId="+options.serverId;if("livetv"===item)return"guide"===options.section?"livetv.html?tab=1&serverId="+options.serverId:"movies"===options.section?"livetvitems.html?type=Programs&IsMovie=true&serverId="+options.serverId:"shows"===options.section?"livetvitems.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId="+options.serverId:"sports"===options.section?"livetvitems.html?type=Programs&IsSports=true&serverId="+options.serverId:"kids"===options.section?"livetvitems.html?type=Programs&IsKids=true&serverId="+options.serverId:"news"===options.section?"livetvitems.html?type=Programs&IsNews=true&serverId="+options.serverId:"onnow"===options.section?"livetvitems.html?type=Programs&IsAiring=true&serverId="+options.serverId:"dvrschedule"===options.section?"livetv.html?tab=4&serverId="+options.serverId:"livetv.html?serverId="+options.serverId}var url,id=item.Id||item.ItemId;options||(options={});var itemType=item.Type||(options?options.itemType:null),serverId=item.ServerId||options.serverId;if("SeriesTimer"==itemType)return"itemdetails.html?seriesTimerId="+id+"&serverId="+serverId;if("livetv"==item.CollectionType)return"livetv.html";if("channels"==item.CollectionType)return"channels.html";if("folders"===context||itemHelper.isLocalItem(item)){if(item.IsFolder&&"BoxSet"!=itemType&&"Series"!=itemType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#"}else{if("movies"==item.CollectionType)return url="movies.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=1"),url;if("boxsets"==item.CollectionType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("tvshows"==item.CollectionType)return url="tv.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=2"),url;if("music"==item.CollectionType)return"music.html?topParentId="+item.Id;if("games"==item.CollectionType)return id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#";if("playlists"==item.CollectionType)return"playlists.html?topParentId="+item.Id;if("photos"==item.CollectionType)return"photos.html?topParentId="+item.Id}if("CollectionFolder"==itemType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id+"&serverId="+serverId;if("PhotoAlbum"==itemType)return"itemlist.html?context=photos&parentId="+id+"&serverId="+serverId;if("Playlist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("TvChannel"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Channel"==itemType)return"channelitems.html?id="+id+"&serverId="+serverId;if(item.IsFolder&&"Channel"==item.SourceType||"ChannelFolderItem"==itemType)return"channelitems.html?id="+item.ChannelId+"&folderId="+item.Id;if("Program"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("BoxSet"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicAlbum"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameSystem"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Genre"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("MusicGenre"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("GameGenre"==itemType)return url="secondaryitems.html?type=Game&genreId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url;if("Studio"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&studioId="+id+"&serverId="+serverId,topParentId&&(url+="&parentId="+topParentId),url}if("Person"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("Recording"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;if("MusicArtist"==itemType)return"itemdetails.html?id="+id+"&serverId="+serverId;var contextSuffix=context?"&context="+context:"";return"Series"==itemType||"Season"==itemType||"Episode"==itemType?"itemdetails.html?id="+id+contextSuffix+"&serverId="+serverId:item.IsFolder?id?"itemlist.html?parentId="+id+"&serverId="+serverId:"#":"itemdetails.html?id="+id+"&serverId="+serverId},appRouter.showItem=showItem,appRouter})}function defineResizeObserver(){self.ResizeObserver?define("ResizeObserver",[],function(){return self.ResizeObserver}):define("ResizeObserver",["bower_components/resize-observer-polyfill/resizeobserver"],returnFirstDependency)}function initRequireWithBrowser(browser){var bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents";Dashboard.isRunningInCordova()&&browser.android?(define("apiclientcore",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),define("apiclient",["bower_components/emby-apiclient/apiclientex"],returnFirstDependency)):define("apiclient",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("actionsheet",["cordova/actionsheet"],returnFirstDependency):define("actionsheet",["webActionSheet"],returnFirstDependency),"registerElement"in document?define("registerElement",[]):browser.msie?define("registerElement",[bowerPath+"/webcomponentsjs/webcomponents-lite.min.js"],returnFirstDependency):define("registerElement",[bowerPath+"/document-register-element/build/document-register-element"],returnFirstDependency),window.chrome&&window.chrome.sockets?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.android?define("serverdiscovery",["cordova/serverdiscovery"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.safari?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("imageFetcher",["cordova/imagestore"],returnFirstDependency):define("imageFetcher",[embyWebComponentsBowerPath+"/images/basicimagefetcher"],returnFirstDependency);var preferNativeAlerts=browser.tv;preferNativeAlerts&&window.alert?define("alert",[embyWebComponentsBowerPath+"/alert/nativealert"],returnFirstDependency):define("alert",[embyWebComponentsBowerPath+"/alert/alert"],returnFirstDependency),defineResizeObserver(),define("dialog",[embyWebComponentsBowerPath+"/dialog/dialog"],returnFirstDependency),preferNativeAlerts&&window.confirm?define("confirm",[embyWebComponentsBowerPath+"/confirm/nativeconfirm"],returnFirstDependency):define("confirm",[embyWebComponentsBowerPath+"/confirm/confirm"],returnFirstDependency);var preferNativePrompt=preferNativeAlerts||browser.xboxOne;preferNativePrompt&&window.confirm?define("prompt",[embyWebComponentsBowerPath+"/prompt/nativeprompt"],returnFirstDependency):define("prompt",[embyWebComponentsBowerPath+"/prompt/prompt"],returnFirstDependency),browser.tizen||browser.operaTv||browser.chromecast||browser.orsay||browser.web0s||browser.ps4?define("loading",[embyWebComponentsBowerPath+"/loading/loading-legacy"],returnFirstDependency):define("loading",[embyWebComponentsBowerPath+"/loading/loading-lite"],returnFirstDependency),define("multi-download",[embyWebComponentsBowerPath+"/multidownload"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("fileDownloader",["cordova/filedownloader"],returnFirstDependency),define("localassetmanager",["cordova/localassetmanager"],returnFirstDependency)):(define("fileDownloader",[embyWebComponentsBowerPath+"/filedownloader"],returnFirstDependency),define("localassetmanager",[apiClientBowerPath+"/localassetmanager"],returnFirstDependency)),define("screenLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",["cordova/wakelock"],returnFirstDependency),define("networkLock",["cordova/networklock"],returnFirstDependency)):(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),define("networkLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency)),Dashboard.isRunningInCordova()?define("castSenderApiLoader",[],getDummyCastSenderApiLoader):define("castSenderApiLoader",[],getCastSenderApiLoader)}function init(){Dashboard.isRunningInCordova()&&browserInfo.android&&define("nativedirectorychooser",["cordova/nativedirectorychooser"],returnFirstDependency),Dashboard.isRunningInCordova()&&browserInfo.android?define("localsync",["cordova/localsync"],returnFirstDependency):define("localsync",["scripts/localsync"],returnFirstDependency),define("livetvcss",["css!css/livetv.css"],returnFirstDependency),define("detailtablecss",["css!css/detailtable.css"],returnFirstDependency),define("buttonenabled",["legacy/buttonenabled"],returnFirstDependency),initAfterDependencies()}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function initAfterDependencies(){var list=[];window.fetch||list.push("fetch"),"function"!=typeof Object.assign&&list.push("objectassign"),Array.prototype.filter||list.push("arraypolyfills"),Function.prototype.bind||list.push("functionbind"),window.requestAnimationFrame||list.push("raf"),require(list,function(){createConnectionManager().then(function(){console.log("initAfterDependencies promises resolved"),require(["globalize"],function(globalize){window.Globalize=globalize,Promise.all([loadCoreDictionary(globalize),loadSharedComponentsDictionary(globalize)]).then(onGlobalizeInit)})})})}function loadSharedComponentsDictionary(globalize){var baseUrl="bower_components/emby-webcomponents/strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fi","fr","gsw","he","hr","hu","id","it","kk","ko","lt-lt","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sk","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});globalize.loadStrings({name:"sharedcomponents",translations:translations})}function loadCoreDictionary(globalize){var baseUrl="strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fa","fi","fr","gsw","he","hr","hu","id","it","kk","ko","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});return globalize.defaultModule("core"),globalize.loadStrings({name:"core",translations:translations})}function onGlobalizeInit(){document.title=Globalize.translateDocument(document.title,"core");var deps=["apphost"];browserInfo.tv&&!browserInfo.android?(console.log("Using system fonts with explicit sizes"),deps.push("systemFontsSizedCss")):(console.log("Using default fonts"),deps.push("systemFontsCss")),deps.push("css!css/librarybrowser"),require(deps,function(appHost){loadPlugins([],appHost,browserInfo).then(onAppReady)})}function defineRoute(newRoute,dictionary){var baseRoute=Emby.Page.baseUrl(),path=newRoute.path;path=path.replace(baseRoute,""),console.log("Defining route: "+path),newRoute.dictionary=newRoute.dictionary||dictionary||"core",Emby.Page.addRoute(path,newRoute)}function defineCoreRoutes(appHost){console.log("Defining core routes"),defineRoute({path:"/addplugin.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/addpluginpage"}),defineRoute({path:"/appservices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizelog.html",dependencies:[],roles:"admin"}),defineRoute({path:"/channelitems.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/channels.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/channels"}),defineRoute({path:"/channelsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/cinemamodeconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/connectlogin.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/connectlogin"}),defineRoute({path:"/dashboard.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/dashboardpage"}),defineRoute({path:"/dashboardgeneral.html",controller:"dashboard/dashboardgeneral",autoFocus:!1,roles:"admin"}),defineRoute({path:"/dashboardhosting.html",dependencies:["emby-input","emby-button"],autoFocus:!1,roles:"admin",controller:"dashboard/dashboardhosting"}),defineRoute({path:"/device.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devicesupload.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofile.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaserversettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnasettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/edititemmetadata.html",dependencies:[],controller:"scripts/edititemmetadata",autoFocus:!1}),defineRoute({path:"/encodingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/forgotpassword.html",dependencies:["emby-input","emby-button"],anonymous:!0,startup:!0,controller:"scripts/forgotpassword"}),defineRoute({path:"/forgotpasswordpin.html",dependencies:["emby-input","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/forgotpasswordpin"}),defineRoute({path:"/gamegenres.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/games.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesrecommended.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamestudios.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesystems.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/home.html",dependencies:[],autoFocus:!1,controller:"scripts/indexpage",transition:"fade",type:"home"}),defineRoute({path:"/index.html",dependencies:[],autoFocus:!1,isDefaultRoute:!0}),defineRoute({path:"/itemdetails.html",dependencies:["emby-button","scripts/livetvcomponents","paper-icon-button-light","emby-itemscontainer"],controller:"scripts/itemdetailpage",autoFocus:!1,transition:"fade"}),defineRoute({path:"/itemlist.html",dependencies:[],autoFocus:!1,controller:"scripts/itemlistpage",transition:"fade"}),defineRoute({path:"/kids.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/library.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/librarydisplay.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/librarydisplay"}),defineRoute({path:"/librarysettings.html",dependencies:["emby-collapse","emby-input","emby-button","emby-select"],autoFocus:!1,roles:"admin",controller:"dashboard/librarysettings"}),defineRoute({path:"/livetv.html",dependencies:["emby-button","livetvcss"],controller:"scripts/livetvsuggested",autoFocus:!1,transition:"fade"}),defineRoute({path:"/livetvguideprovider.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvitems.html",dependencies:[],autoFocus:!1,controller:"scripts/livetvitems"}),defineRoute({path:"/livetvseriestimer.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-collapse","scripts/livetvcomponents","scripts/livetvseriestimer","livetvcss"],autoFocus:!1,controller:"scripts/livetvseriestimer"}),defineRoute({path:"/livetvsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/livetvstatus.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvtuner.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/livetvtuner"}),defineRoute({path:"/log.html",dependencies:["emby-checkbox"],roles:"admin",controller:"dashboard/logpage"}),defineRoute({path:"/login.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/loginpage"}),defineRoute({path:"/metadataadvanced.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadataimages.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatanfo.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatasubtitles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/movies.html",dependencies:["emby-button"],autoFocus:!1,controller:"scripts/moviesrecommended",transition:"fade"}),defineRoute({path:"/music.html",dependencies:[],controller:"scripts/musicrecommended",autoFocus:!1,transition:"fade"}),defineRoute({path:"/mypreferencesdisplay.html",dependencies:["emby-checkbox","emby-button","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencesdisplay"}),defineRoute({path:"/mypreferenceshome.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceshome"}),defineRoute({path:"/mypreferencessubtitles.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencessubtitles"}),defineRoute({path:"/mypreferenceslanguages.html",dependencies:["emby-button","emby-checkbox","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceslanguages"}),defineRoute({path:"/mypreferencesmenu.html",dependencies:["emby-button"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencescommon"}),defineRoute({path:"/myprofile.html",dependencies:["emby-button","emby-collapse","emby-checkbox","emby-input"],autoFocus:!1,transition:"fade",controller:"scripts/myprofile"}),defineRoute({path:"/offline/offline.html",transition:"fade",controller:"offline/offline",dependencies:[],anonymous:!0,startup:!1}),defineRoute({path:"/managedownloads.html",transition:"fade",controller:"scripts/managedownloads",dependencies:[]}),defineRoute({path:"/mysync.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mysync"}),defineRoute({path:"/camerauploadsettings.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/camerauploadsettings"}),defineRoute({path:"/mysyncjob.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/syncjob"}),defineRoute({path:"/mysyncsettings.html",dependencies:["emby-checkbox","emby-input","emby-button","paper-icon-button-light"],autoFocus:!1,transition:"fade",controller:"scripts/mysyncsettings"}),defineRoute({path:"/notificationlist.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/notificationsetting.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/notificationsettings.html",controller:"scripts/notificationsettings",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/nowplaying.html",dependencies:["paper-icon-button-light","emby-slider","emby-button","emby-input","emby-itemscontainer"],controller:"scripts/nowplayingpage",autoFocus:!1,transition:"fade",fullscreen:!0,supportsThemeMedia:!0,enableMediaControl:!1}),defineRoute({path:"/photos.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/playbackconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/playlists.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/playlists"}),defineRoute({path:"/plugincatalog.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/plugins.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/scheduledtask.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskpage"}),defineRoute({path:"/scheduledtasks.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/scheduledtaskspage"}),defineRoute({path:"/search.html",dependencies:[],controller:"scripts/searchpage"}),defineRoute({path:"/secondaryitems.html",dependencies:[],transition:"fade",autoFocus:!1,controller:"scripts/secondaryitems"}),defineRoute({path:"/selectserver.html",dependencies:["listViewStyle","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/selectserver"}),defineRoute({path:"/serversecurity.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/shared.html",dependencies:[],autoFocus:!1,anonymous:!0}),defineRoute({path:"/streamingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/support.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/supporterkey.html",dependencies:[],controller:"scripts/supporterkeypage",autoFocus:!1,roles:"admin"}),defineRoute({path:"/syncactivity.html",dependencies:[],autoFocus:!1,controller:"scripts/syncactivity"}),defineRoute({path:"/syncsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/tv.html",dependencies:["paper-icon-button-light","emby-button"],autoFocus:!1,controller:"scripts/tvrecommended",transition:"fade"}),defineRoute({path:"/useredit.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userlibraryaccess.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/usernew.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userparentalcontrol.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userpassword.html",dependencies:["emby-input","emby-button","emby-checkbox"],autoFocus:!1,controller:"scripts/userpasswordpage"}),defineRoute({path:"/userprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/wizardagreement.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0,controller:"scripts/wizardagreement"}),defineRoute({path:"/wizardcomponents.html",dependencies:["dashboardcss","emby-button","emby-input","emby-select"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardcomponents"}),defineRoute({path:"/wizardfinish.html",dependencies:["emby-button","dashboardcss"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardfinishpage"}),defineRoute({path:"/wizardlibrary.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardsettings.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardstart.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizarduser.html",dependencies:["dashboardcss","emby-input"],controller:"scripts/wizarduserpage",autoFocus:!1,anonymous:!0}),defineRoute({path:"/videoosd.html",dependencies:[],transition:"fade",controller:"scripts/videoosd",autoFocus:!1,type:"video-osd",supportsThemeMedia:!0,fullscreen:!0,enableMediaControl:!1}),defineRoute(Dashboard.isConnectMode()?{path:"/configurationpageext",dependencies:[],autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin",contentPath:getPluginPageContentPath}:{path:"/configurationpage",dependencies:[],autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin"}),defineRoute({path:"/",isDefaultRoute:!0,autoFocus:!1,dependencies:[]})}function getPluginPageContentPath(){return window.ApiClient?ApiClient.getUrl("web/ConfigurationPage"):null}function loadPlugins(externalPlugins,appHost,browser,shell){console.log("Loading installed plugins");var list=["bower_components/emby-webcomponents/playback/playbackvalidation","bower_components/emby-webcomponents/playback/playaccessvalidation","bower_components/emby-webcomponents/playback/experimentalwarnings"];Dashboard.isRunningInCordova()&&browser.android?list.push("cordova/vlcplayer"):Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/audioplayer"),list.push("bower_components/emby-webcomponents/htmlaudioplayer/plugin"),Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/chromecast"),Dashboard.isRunningInCordova()&&browser.android&&list.push("cordova/externalplayer"),list.push("bower_components/emby-webcomponents/htmlvideoplayer/plugin"),list.push("bower_components/emby-webcomponents/photoplayer/plugin"),appHost.supports("remotecontrol")&&(list.push("bower_components/emby-webcomponents/sessionplayer"),browser.chrome&&list.push("bower_components/emby-webcomponents/chromecast/chromecastplayer")),list.push("bower_components/emby-webcomponents/youtubeplayer/plugin");for(var i=0,length=externalPlugins.length;i